Function at 0x404742
Capabilities:
Identify system language via api

Disassembly:
mov eax, 0x4300f3
call fcn.0042f6e0
sub esp, 0x7c
mov al, byte [ebp + 0x17]
push ebx
xor ebx, ebx
push esi
push edi
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x38], ebx
mov byte [ebp - 0x68], al
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
movsx eax, byte [0x43bbc9]
push 1
mov dword [ebp - 0x10], ebx
pop esi
push 0x1a43ffff
push eax
mov dword [ebp - 4], esi
call fcn.004117d2
add byte [0x43bbca], al
movsx eax, byte [0x43bbca]
push eax
push 0x752fffff
call fcn.0041172e
add byte [0x43bbc9], al
mov al, byte [0x43bbec]
and al, byte [0x43bbce]
add esp, 0x10
mov dword [ebp - 0x2c], ebx
add byte [0x43bbcd], al
mov dword [ebp - 0x20], ebx
mov eax, dword [ebp + 0xc]
or word [0x43bbd6], 0xffff
lea edx, [ebp - 0x20]
mov byte [ebp - 4], 3
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x24]
inc word [0x43bbd8]
mov edi, eax
movsx eax, byte [0x43bbce]
push eax
push 0x2595ffff
call fcn.00411820
pop ecx
cmp edi, ebx
pop ecx
mov byte [0x43bbc9], al
jl 0x405898
mov eax, dword [ebp - 0x20]
cmp eax, ebx
je 0x405898
cmp word [0x43bbda], bx
je 0x40481b
cmp byte [0x43bbd1], bl
jne 0x40481d
xor esi, esi
add dword [0x43bbfc], esi
mov ecx, dword [eax]
lea edx, [ebp - 0x2c]
push edx
push eax
call dword [ecx + 0x3c]
push 0x4937ffff
push dword [0x43bc00]
call fcn.00411820
mov dword [0x43bc0c], eax
mov eax, dword [ebp - 0x2c]
pop ecx
cmp eax, ebx
pop ecx
je 0x404bee
mov ecx, dword [0x43bc00]
mov edx, dword [0x43bbfc]
mov dword [ebp - 0x28], ebx
lea ecx, [edx + ecx*2]
mov dword [0x43bc00], ecx
mov cl, byte [0x43bbcd]
sub cl, byte [0x43bbce]
mov byte [0x43bbca], cl
mov ecx, dword [eax]
lea edx, [ebp - 0x10]
push edx
push eax
mov byte [ebp - 4], 4
call dword [ecx + 0x174]
push dword [ebp - 0x10]
lea ecx, [ebp - 0x28]
call fcn.0040846b
call dword [sym.imp.KERNEL32.dll_GetVersion]
add byte [0x43bbd1], al
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
movsx eax, word [0x43bbd2]
push dword [0x43bc04]
mov dword [ebp - 0x10], ebx
push eax
call fcn.00411820
add word [0x43bbd6], ax
cmp dword [ebp - 0x28], ebx
pop ecx
pop ecx
je 0x404bdd
mov dword [ebp - 0x1c], ebx
movsx eax, word [0x43bbde]
push eax
push 0x9a9bffff
mov byte [ebp - 4], 5
call fcn.00411820
mov byte [0x43bbc8], al
xor eax, eax
cmp dword [0x43bc0c], ebx
push 0x8e5ffff
mov word [ebp - 0x58], 8
setne al
mov dword [0x43bc08], eax
movsx eax, byte [0x43bbcc]
push eax
call fcn.00411820
push 0xffffffffffffffff
push str.base
mov dword [0x43bbe8], eax
mov dword [0x43bbfc], 0xe6560000
call fcn.004058ee
add esp, 0x18
lea edx, [ebp - 0x10]
lea esi, [ebp - 0x58]
mov dword [ebp - 0x50], eax
push edx
mov eax, dword [ebp - 0x28]
sub esp, 0x10
mov edi, esp
mov ecx, dword [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x30]
push 0xed69ffff
push 0xe0c1ffff
call fcn.004116ab
pop ecx
mov word [0x43bbdc], ax
pop ecx
push dword [ebp - 0x50]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
push dword [ebp - 0x10]
lea ecx, [ebp - 0x1c]
call fcn.0040846b
mov al, byte [0x43bbd1]
or word [0x43bbdc], 0xffff
sub al, byte [0x43bbc8]
add byte [0x43bbca], al
mov al, byte [0x43bbd4]
sub al, byte [0x43bbde]
mov byte [0x43bbcd], al
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov dword [ebp - 0x10], ebx
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
inc byte [0x43bbd1]
mov byte [0x43bbca], al
movsx ax, byte [0x43bbd1]
dec eax
mov word [0x43bbd6], ax
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
je 0x404bcf
mov ecx, dword [eax]
lea edx, [ebp - 0x30]
push edx
push eax
call dword [ecx + 0x24]
movsx eax, word [0x43bbde]
push eax
movsx eax, byte [0x43bbc9]
push eax
call fcn.004116de
add byte [0x43bbce], al
cmp dword [ebp - 0x30], ebx
pop ecx
pop ecx
jle 0x404bcc
mov dword [ebp - 0x14], ebx
movsx eax, byte [0x43bbd0]
push dword [0x43bc00]
mov byte [ebp - 4], 6
mov dword [ebp - 0x24], ebx
push eax
call fcn.00411762
add dword [0x43bbf0], eax
movsx eax, byte [0x43bbcc]
push eax
movsx eax, byte [0x43bbcb]
push eax
call fcn.004116ab
add dword [0x43bbf0], eax
push 0x180bffff
push dword [0x43bbe8]
call fcn.004118e8
add dword [0x43bc00], eax
add esp, 0x18
cmp dword [ebp - 0x30], ebx
jle 0x404bbb
mov word [ebp - 0x58], 3
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x50], eax
movsx eax, word [0x43bbd6]
push eax
push dword [0x43bc04]
call fcn.004118e8
add dword [0x43bc00], eax
push 0x96bfffff
movsx eax, byte [0x43bbca]
push eax
call fcn.004117aa
add esp, 0x10
lea edx, [ebp - 0x10]
lea esi, [ebp - 0x58]
mov dword [0x43bbf0], eax
push edx
mov eax, dword [ebp - 0x1c]
sub esp, 0x10
mov edi, esp
sub esp, 0x10
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x58]
mov edi, esp
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x2c]
push dword [ebp - 0x10]
lea ecx, [ebp - 0x14]
call fcn.00408498
push 0x8d53ffff
push 0x4507ffff
call fcn.004118e8
add dword [0x43bbf4], eax
push 0xc69dffff
push 0x387bffff
call fcn.00411820
add word [0x43bbde], ax
mov eax, dword [ebp - 0x10]
add esp, 0x10
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [0x43bc04]
mov dword [ebp - 0x10], ebx
push eax
push eax
call fcn.00411856
mov dword [0x43bc04], eax
push 0x5509ffff
movsx eax, byte [0x43bbcb]
push eax
call fcn.004117d2
movsx eax, word [0x43bbe2]
or eax, dword [0x43bbf8]
or word [0x43bbdc], 0xffff
push 0xef7dffff
push 0x4c21ffff
add dword [0x43bc00], eax
call fcn.0041172e
add word [0x43bbde], ax
add esp, 0x18
cmp dword [ebp - 0x14], ebx
je 0x404bac
movsx eax, word [0x43bbe4]
push eax
push dword [0x43bc00]
call fcn.004117d2
add word [0x43bbd6], ax
mov eax, dword [ebp - 0x34]
pop ecx
cmp dword [eax + 0x24], 1
mov eax, dword [ebp - 0x14]
pop ecx
mov ecx, dword [eax]
jne 0x404ba3
push str._blank
jmp 0x404ba8
push str._self
push eax
call dword [ecx + 0x24]
inc dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x30]
jl 0x404a73
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 5
cmp eax, ebx
je 0x404bcc
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
mov byte [ebp - 4], 4
je 0x404bdd
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 3
cmp eax, ebx
je 0x404bee
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
movsx eax, word [0x43bbd8]
push eax
movsx eax, word [0x43bbd4]
push eax
call fcn.004116ab
push dword [0x43bbf8]
add dword [0x43bbec], eax
push 0x2495ffff
call fcn.004117aa
add dword [0x43bbf8], eax
mov dword [ebp - 0x18], ebx
movsx eax, byte [0x43bbc8]
push eax
mov byte [ebp - 4], 7
movsx eax, word [0x43bbdc]
push eax
call fcn.004117d2
mov dword [0x43bbf4], eax
mov eax, dword [ebp + 0x10]
add esp, 0x18
cmp eax, ebx
jne 0x404c4d
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
lea edx, [ebp - 0x10]
push edx
push eax
call dword [ecx + 0x174]
push dword [ebp - 0x10]
lea ecx, [ebp - 0x18]
call fcn.0040846b
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], ebx
cmp eax, ebx
je 0x404dda
mov ecx, dword [eax]
lea edx, [ebp - 0x30]
push edx
push eax
call dword [ecx + 0x24]
cmp dword [ebp - 0x30], ebx
jle 0x404dda
mov dword [ebp + 0x10], ebx
mov byte [ebp - 4], 8
mov dword [ebp - 0x28], ebx
mov word [ebp - 0x58], 3
mov eax, dword [ebp - 0x28]
lea edx, [ebp - 0x10]
push edx
lea esi, [ebp - 0x58]
sub esp, 0x10
mov dword [ebp - 0x50], eax
mov edi, esp
sub esp, 0x10
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x58]
mov edi, esp
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x18]
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x2c]
push dword [ebp - 0x10]
lea ecx, [ebp + 0x10]
call fcn.00408321
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
cmp dword [ebp + 0x10], ebx
mov dword [ebp - 0x10], ebx
je 0x404d1c
lea ecx, [ebp - 0x40]
call fcn.00427a50
mov eax, dword [ebp + 0x10]
lea edx, [ebp - 0x40]
push edx
push eax
mov ecx, dword [eax]
mov byte [ebp - 4], 9
call dword [ecx + 0x34]
push 0x43b13c
lea ecx, [ebp - 0x40]
call fcn.00427b50
test eax, eax
jne 0x404d30
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 8
call fcn.00427ab7
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x30]
jl 0x404c9f
jmp 0x404dc9
mov eax, dword [ebp + 0x10]
lea edx, [ebp - 0x10]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x174]
movsx eax, word [0x43bbd4]
push eax
call dword [sym.imp.KERNEL32.dll_IsBadCodePtr]
push dword [ebp - 0x10]
lea ecx, [ebp - 0x18]
mov byte [0x43bbc8], al
call fcn.0040846b
push 0x6ecbffff
push dword [0x43bbf4]
call fcn.004117d2
add byte [0x43bbcb], al
push 0x910bffff
push 0x6149ffff
call fcn.004117aa
add dword [0x43bbf0], 0x3dfbffff
mov word [0x43bbe2], ax
mov eax, dword [ebp - 0x10]
add esp, 0x10
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
sub dword [0x43bbfc], 0x35900002
xor eax, eax
cmp word [0x43bbd4], bx
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x10], ebx
mov byte [ebp - 4], 8
setne al
mov dword [0x43bc0c], eax
call fcn.00427ab7
mov eax, dword [ebp + 0x10]
mov byte [ebp - 4], 7
cmp eax, ebx
je 0x404dda
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ax, word [0x43bbe0]
and ax, word [0x43bbe2]
add word [0x43bbda], ax
cmp dword [ebp - 0x18], ebx
je 0x40586b
push dword [0x43bc00]
dec byte [0x43bbd1]
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
add word [0x43bbde], ax
cmp word [0x43bbe0], bx
je 0x404e2a
cmp dword [0x43bc00], ebx
mov word [0x43bbe4], 1
jne 0x404e31
mov word [0x43bbe4], bx
mov dword [ebp - 0x24], ebx
add dword [0x43bbf8], 0x5ec5fffe
push 0xffffffffffffffff
push 0x43b138
mov byte [ebp - 4], 0xa
mov word [ebp - 0x58], 8
call fcn.004058ee
mov dword [ebp - 0x50], eax
mov al, byte [0x43bc00]
add byte [0x43bbcb], al
push 0xbdebffff
push 0x9345ffff
call fcn.004117d2
add esp, 0x10
lea edx, [ebp - 0x10]
lea esi, [ebp - 0x58]
add dword [0x43bc00], eax
push edx
mov eax, dword [ebp - 0x18]
sub esp, 0x10
mov edi, esp
mov ecx, dword [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x30]
push dword [ebp - 0x50]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
movsx eax, word [0x43bbde]
push eax
movsx eax, word [0x43bbd6]
push eax
call fcn.004116ab
push 0xb90dffff
push 0xe2d5ffff
mov word [0x43bbde], ax
call fcn.004116ab
add esp, 0x10
lea ecx, [ebp - 0x24]
mov word [0x43bbda], ax
push dword [ebp - 0x10]
call fcn.0040846b
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
movsx eax, word [0x43bbd4]
push eax
push 0x77bdffff
call fcn.00411762
add byte [0x43bbc9], al
push dword [0x43bc0c]
movsx ax, byte [0x43bbce]
movsx cx, byte [0x43bbcb]
or ax, word [0x43bbd6]
push 0x99f5ffff
mov dword [ebp - 0x10], ebx
sub eax, ecx
add ax, word [0x43bbde]
add word [0x43bbdc], ax
xor eax, eax
cmp byte [0x43bbcc], bl
setne al
add word [0x43bbda], ax
call fcn.004118a0
add dword [0x43bbe8], eax
mov eax, dword [ebp - 0x24]
add esp, 0x10
cmp eax, ebx
je 0x405842
mov ecx, dword [eax]
lea edx, [ebp - 0x30]
push edx
push eax
call dword [ecx + 0x24]
mov al, byte [0x43bc0c]
push 0x93bbffff
sub byte [0x43bbca], al
push 0xd9a9ffff
call fcn.004117aa
cmp dword [ebp - 0x30], ebx
pop ecx
pop ecx
mov dword [0x43bbf0], eax
jle 0x405842
movsx eax, word [0x43bbdc]
push eax
push dword [0x43bbf4]
call fcn.00411762
add word [0x43bbe2], ax
push 0x996bffff
movsx eax, word [0x43bbda]
push eax
call fcn.00411820
add byte [0x43bbcf], al
movsx eax, word [0x43bbde]
push eax
push eax
call fcn.004116ab
add word [0x43bbd2], ax
or word [0x43bbdc], 0xffff
movsx eax, byte [0x43bbce]
push 0x74cfffff
push eax
call fcn.004118a0
add word [0x43bbdc], ax
push 0xb203ffff
movsx eax, byte [0x43bbd0]
add eax, 0x5ecc0001
push 0xb977ffff
mov dword [0x43bc08], eax
xor eax, eax
cmp dword [0x43bbf8], ebx
setne al
add byte [0x43bbd1], al
call fcn.004118a0
or word [0x43bbda], 0xffff
add esp, 0x28
mov dword [0x43bc00], eax
mov dword [ebp - 0x14], ebx
dec word [0x43bbd2]
cmp dword [ebp - 0x30], ebx
mov byte [ebp - 4], 0xb
mov word [0x43bbe4], 1
mov dword [ebp - 0x1c], ebx
jle 0x4057eb
mov word [ebp - 0x78], 3
cmp byte [0x43bbc8], bl
je 0x40507c
cmp word [0x43bbd8], bx
mov dword [0x43bc00], 1
jne 0x405082
mov dword [0x43bc00], ebx
mov ax, word [0x43bbd2]
push 0x8b3ffff
add word [0x43bbde], ax
mov eax, dword [ebp - 0x1c]
inc word [0x43bbe4]
push 0x8545ffff
mov dword [ebp - 0x70], eax
call fcn.004117d2
mov word [0x43bbde], ax
push 0xa095ffff
movsx eax, byte [0x43bbc8]
push eax
call fcn.00411762
add esp, 0x10
lea edx, [ebp - 0x10]
lea esi, [ebp - 0x78]
mov byte [0x43bbcc], al
push edx
mov eax, dword [ebp - 0x24]
sub esp, 0x10
mov edi, esp
sub esp, 0x10
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x78]
mov edi, esp
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x2c]
mov al, byte [0x43bbfc]
push dword [ebp - 0x10]
imul byte [0x43bbca]
add byte [0x43bbcf], al
or byte [0x43bbce], 0xff
movsx ax, byte [0x43bbcc]
or ecx, 0xffffffff
sub ecx, eax
add word [0x43bbe0], cx
lea ecx, [ebp - 0x14]
call fcn.004084c5
mov eax, dword [0x43bc04]
push dword [0x43bbf0]
and eax, 0x9aa5ffff
push 0xfab3ffff
mov dword [0x43bc08], eax
call fcn.004116ab
add byte [0x43bbce], al
push dword [0x43bbf0]
movsx eax, word [0x43bbd8]
push eax
call fcn.0041172e
add word [0x43bbe4], ax
mov eax, dword [ebp - 0x10]
add esp, 0x10
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
movsx eax, word [0x43bbe2]
push eax
movsx eax, word [0x43bbd6]
push eax
call fcn.00411856
pop ecx
mov byte [0x43bbcb], al
pop ecx
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
inc word [0x43bbd2]
mov byte [0x43bbcc], al
movsx eax, word [0x43bbd6]
push eax
push 0xdf35ffff
mov byte [0x43bbd1], 0xfe
mov dword [ebp - 0x10], ebx
mov byte [ebp + 0x13], bl
call fcn.0041172e
add dword [0x43bbec], eax
cmp dword [ebp - 0x14], ebx
pop ecx
pop ecx
je 0x4056fa
dec word [0x43bbe0]
call dword [sym.imp.USER32.dll_GetFocus]
lea ecx, [ebp - 0x40]
mov word [0x43bbe0], ax
mov byte [ebp + 0x13], 1
call fcn.00427a50
push dword [0x43bbec]
mov byte [ebp - 4], 0xc
push 0xb2edffff
call fcn.00411762
push dword [0x43bc04]
mov byte [0x43bbd0], al
push 0x2451ffff
call fcn.00411856
add dword [0x43bc04], eax
mov eax, dword [ebp - 0x14]
add esp, 0x10
lea edx, [ebp - 0x40]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x28]
test eax, eax
jl 0x405298
push 0x9e41ffff
push 0x63ddffff
call fcn.00411856
add byte [0x43bbca], al
mov eax, dword [ebp - 0x34]
pop ecx
cmp dword [eax + 0x24], 1
pop ecx
jne 0x40525e
mov eax, dword [ebp - 0x14]
push str._blank
mov ecx, dword [eax]
jmp 0x405288
cmp dword [ebp - 0x40], ebx
je 0x40528c
push dword [ebp - 0x40]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
jbe 0x40528c
mov esi, str._self
lea ecx, [ebp - 0x40]
push esi
call fcn.00427b50
test eax, eax
jne 0x40528c
mov eax, dword [ebp - 0x14]
push esi
mov ecx, dword [eax]
push eax
call dword [ecx + 0x24]
mov al, byte [0x43bbc8]
neg al
mov byte [0x43bbcd], al
mov al, byte [0x43bbfc]
inc byte [0x43bbc8]
mov byte [0x43bbcf], al
movsx eax, byte [0x43bbcb]
push eax
movsx eax, word [0x43bbde]
push eax
call fcn.00411820
pop ecx
mov dword [0x43bc00], eax
mov eax, dword [ebp - 0x14]
pop ecx
lea edx, [ebp - 0x40]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x20]
test eax, eax
jl 0x4056e5
sub dword [0x43bc0c], 0x32dc0002
dec byte [0x43bbd1]
cmp byte [ebp + 0x14], bl
je 0x405324
mov esi, dword [0x434ea8]
mov al, byte [esi]
add al, 0x5f
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042f700
mov ecx, esp
push ebx
mov edx, esi
call fcn.0042b9bf
push eax
lea ecx, [ebp - 0x40]
call fcn.00427f0c
or edi, 0xffffffff
cmp eax, edi
jne 0x405327
mov byte [ebp + 0x13], bl
jmp 0x405327
or edi, 0xffffffff
movsx eax, word [0x43bbdc]
push eax
push 0xc7c5ffff
mov word [0x43bbe4], di
call fcn.004117aa
add byte [0x43bbce], al
push 0x8075ffff
push 0x504bffff
call fcn.00411820
mov esi, dword [0x434eac]
mov dword [0x43bc04], eax
add esp, 0x10
mov al, byte [esi]
add al, 0x5f
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042f700
mov ecx, esp
push ebx
mov edx, esi
call fcn.0042b9bf
push eax
lea ecx, [ebp - 0x40]
call fcn.00427f0c
cmp eax, edi
je 0x40538e
mov byte [ebp + 0x13], bl
call dword [sym.imp.USER32.dll_GetCapture]
mov byte [0x43bbd1], al
mov byte [0x43bbc8], 1
movsx eax, word [0x43bbd4]
push eax
push 0xea0bffff
call fcn.00411820
mov esi, dword [0x434eb0]
add word [0x43bbd6], ax
pop ecx
mov al, byte [esi]
pop ecx
add al, 0x5f
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042f700
mov ecx, esp
push ebx
mov edx, esi
call fcn.0042b9bf
push eax
lea ecx, [ebp - 0x40]
call fcn.00427f0c
cmp eax, edi
je 0x4053ec
mov byte [ebp + 0x13], bl
mov eax, dword [0x43bbe8]
and eax, 0xf88fffff
add dword [0x43bbec], eax
inc dword [0x43bc00]
movsx eax, word [0x43bbe0]
push eax
push 0x5671ffff
call fcn.004117d2
mov esi, dword [0x434eb4]
add byte [0x43bbce], al
pop ecx
mov al, byte [esi]
pop ecx
add al, 0x5f
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042f700
mov ecx, esp
push ebx
mov edx, esi
call fcn.0042b9bf
push eax
lea ecx, [ebp - 0x40]
call fcn.00427f0c
cmp eax, edi
je 0x40544d
mov byte [ebp + 0x13], bl
movsx eax, word [0x43bbd4]
push eax
push 0xb935ffff
call fcn.004118e8
mov word [0x43bbd2], ax
push 0xeafffff
movsx eax, word [0x43bbe2]
push eax
call fcn.004118a0
mov esi, dword [0x434eb8]
add dword [0x43bbf8], eax
add esp, 0x10
mov al, byte [esi]
add al, 0x5f
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042f700
mov ecx, esp
push ebx
mov edx, esi
call fcn.0042b9bf
push eax
lea ecx, [ebp - 0x40]
call fcn.00427f0c
cmp eax, edi
je 0x4054b1
mov byte [ebp + 0x13], bl
movsx eax, byte [0x43bbcf]
push 0xc769ffff
push eax
call fcn.00411856
mov esi, dword [0x434ebc]
mov dword [0x43bc0c], eax
pop ecx
mov al, byte [esi]
pop ecx
add al, 0x5f
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042f700
mov ecx, esp
push ebx
mov edx, esi
call fcn.0042b9bf
push eax
lea ecx, [ebp - 0x40]
call fcn.00427f0c
cmp eax, edi
je 0x4054fb
mov byte [ebp + 0x13], bl
movsx eax, byte [0x43bbd1]
push 0xb707ffff
push eax
call fcn.00411762
add byte [0x43bbcb], al
push 0xafbfffff
movsx eax, byte [0x43bbcd]
push eax
call fcn.004118e8
add dword [0x43bc00], eax
push dword [0x43bc00]
push 0xb175ffff
call fcn.004117d2
mov esi, dword [0x434ec0]
mov dword [0x43bbf0], eax
add esp, 0x18
mov al, byte [esi]
add al, 0x5f
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042f700
mov ecx, esp
push ebx
mov edx, esi
call fcn.0042b9bf
push eax
lea ecx, [ebp - 0x40]
call fcn.00427f0c
cmp eax, edi
je 0x405574
mov byte [ebp + 0x13], bl
movsx eax, word [0x43bbd2]
push eax
push 0x1571ffff
push 0x9e83ffff
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov byte [0x43bbca], al
movsx eax, word [0x43bbd6]
push eax
push 0x68dfffff
call fcn.00411820
mov dword [0x43bc08], eax
mov eax, dword [0x43bbf8]
push eax
push eax
call fcn.004118a0
mov esi, dword [0x434ec4]
add dword [0x43bbf0], eax
add esp, 0x10
mov al, byte [esi]
add al, 0x5f
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042f700
mov ecx, esp
push ebx
mov edx, esi
call fcn.0042b9bf
push eax
lea ecx, [ebp - 0x40]
call fcn.00427f0c
cmp eax, edi
je 0x4055ee
mov byte [ebp + 0x13], bl
cmp byte [ebp + 0x13], bl
je 0x4056b9
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x28], ebx
cmp eax, ebx
je 0x40560f
mov ecx, dword [eax]
lea edx, [ebp - 0x28]
push edx
push 0x43b108
push eax
call dword [ecx]
cmp dword [ebp - 0x28], ebx
mov byte [ebp - 4], 0xd
je 0x4056a8
lea ecx, [ebp - 0x48]
call fcn.00427a50
mov eax, dword [ebp - 0x28]
lea edx, [ebp - 0x48]
push edx
push eax
mov ecx, dword [eax]
mov byte [ebp - 4], 0xe
call dword [ecx + 0x34]
test eax, eax
jl 0x40569c
mov esi, dword [0x434ec8]
mov al, byte [esi]
add al, 0x5f
movzx eax, al
add eax, 3
and al, 0xfc
call fcn.0042f700
mov ecx, esp
mov edx, esi
call fcn.0042b9bf
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.0042cbc1
pop ecx
pop ecx
mov eax, dword [eax + 4]
mov byte [ebp - 4], 0xf
cmp eax, ebx
jne 0x405678
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
push eax
lea ecx, [ebp - 0x48]
call fcn.00427b50
push 1
lea ecx, [ebp - 0x88]
mov esi, eax
mov byte [ebp - 4], 0xe
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
cmp esi, ebx
je 0x40569c
mov byte [ebp + 0x13], bl
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0xd
call fcn.00427ab7
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 0xc
cmp eax, ebx
je 0x4056b9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
movsx eax, word [0x43bbda]
push dword [0x43bbec]
imul eax, eax, 0x747ffff
add dword [0x43bbf4], eax
push 0x41ffff
call fcn.00411820
add word [0x43bbd4], ax
pop ecx
pop ecx
lea ecx, [ebp - 0x40]
mov word [0x43bbe2], 1
mov byte [ebp - 4], 0xb
call fcn.00427ab7
movsx eax, byte [0x43bbd1]
dec word [0x43bbd6]
push eax
push 0xde35ffff
call fcn.00411762
add word [0x43bbd2], ax
xor eax, eax
cmp dword [0x43bc08], ebx
pop ecx
pop ecx
setne al
cmp byte [ebp + 0x13], bl
mov dword [0x43bc04], eax
je 0x4057ae
push 0xed33ffff
call dword [sym.imp.KERNEL32.dll_IsBadCodePtr]
mov esi, dword [ebp + 0xc]
add byte [0x43bbca], al
cmp esi, ebx
mov dword [ebp + 0x10], esi
je 0x405752
mov eax, dword [esi]
push esi
call dword [eax + 4]
cmp esi, ebx
mov byte [ebp - 4], 0x10
mov dword [ebp - 0x50], esi
je 0x405763
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x50]
lea ecx, [ebp - 0x68]
push eax
mov byte [ebp - 4], 0x11
call fcn.0040845a
mov eax, dword [ebp - 0x50]
mov byte [ebp - 4], 0x10
cmp eax, ebx
je 0x40578a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp esi, ebx
mov byte [ebp - 4], 0xb
je 0x405798
mov eax, dword [esi]
push esi
call dword [eax + 8]
push 0xfb17ffff
push 0x7e19ffff
call fcn.00411762
pop ecx
mov dword [0x43bbf0], eax
pop ecx
mov eax, dword [0x43bbf8]
mov ecx, dword [0x43bbf0]
add ecx, eax
movsx eax, byte [0x43bbce]
push eax
push 0x2b4bffff
mov word [0x43bbda], cx
call fcn.004117d2
add byte [0x43bbd0], al
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
pop ecx
cmp eax, dword [ebp - 0x30]
pop ecx
jl 0x405061
mov al, byte [0x43bbdc]
mov byte [ebp - 4], 0xa
and al, byte [0x43bbcf]
mov byte [0x43bbcd], al
mov eax, dword [ebp - 0x14]
cmp eax, ebx
je 0x40580c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [0x43bbfc]
push 0x28dbffff
call fcn.00411856
mov al, byte [0x43bbcd]
push dword [0x43bc00]
neg al
push 0xcddfffff
mov byte [0x43bbc8], al
call fcn.00411820
add esp, 0x10
add word [0x43bbd6], ax
push 0xfa5fffff
push 0xc9adffff
call fcn.004117d2
add word [0x43bbde], ax
mov eax, dword [ebp - 0x24]
pop ecx
cmp eax, ebx
pop ecx
mov byte [ebp - 4], 7
je 0x40586b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x68]
push eax
mov byte [0x43bbcf], 1
call fcn.00408392
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x38], 1
cmp eax, ebx
mov byte [ebp - 4], 3
je 0x4058a7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x4058a7
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x68]
push eax
call fcn.00408392
mov dword [ebp - 0x38], esi
mov eax, dword [ebp - 0x20]
mov byte [ebp - 4], 2
cmp eax, ebx
je 0x4058b8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 4], 1
cmp eax, ebx
je 0x4058c9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], bl
call fcn.004083fa
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
lea esp, [ebp - 0x94]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret 0x10