Function at 0x40121b
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov dword [esp], 0x422043
call fcn.0041d934
mov dword [esp], 0x42205c
call fcn.0041d934
mov dword [esp], 0x422068
call fcn.0041d934
mov dword [esp], 0x422098
call fcn.0041d934
mov dword [esp], 0x4220b8
call fcn.0041d934
mov dword [esp], 0x4220e0
call fcn.0041d934
mov dword [esp], 0x422110
call fcn.0041d934
mov dword [esp], 0x42213c
call fcn.0041d934
mov dword [esp], 0x422178
call fcn.0041d934
mov dword [esp], 0x422193
call fcn.0041d934
mov dword [esp], 0x4221b4
call fcn.0041d934
mov dword [esp], 0x4221f4
call fcn.0041d934
mov dword [esp], 0x422238
call fcn.0041d934
mov dword [esp], 0x422278
call fcn.0041d934
mov dword [esp], 0x4222a4
call fcn.0041d934
mov dword [esp], 0x4222c8
call fcn.0041d934
mov dword [esp], 0x4222f8
call fcn.0041d934
mov dword [esp], 0x42233c
call fcn.0041d934
mov dword [esp], 0x422374
call fcn.0041d934
mov dword [esp], 0x4223a8
call fcn.0041d934
mov dword [esp], 0x4223cc
call fcn.0041d934
mov dword [esp], 0x4223fc
call fcn.0041d934
mov dword [esp], 0x422434
call fcn.0041d934
mov dword [esp], 0x422478
call fcn.0041d934
mov dword [esp], 0x4224b4
call fcn.0041d934
mov dword [esp], 0x4224dc
call fcn.0041d934
mov dword [esp], 0x422500
call fcn.0041d934
mov dword [esp], 0x422534
call fcn.0041d934
mov eax, dword [0x420048]
mov dword [esp + 4], eax
mov dword [esp], 0x422568
call fcn.0041d934
mov dword [esp], 0x422594
call fcn.0041d934
mov dword [esp], 0x4225c4
call fcn.0041d934
mov dword [esp], 0x4225f4
call fcn.0041d934
mov dword [esp], 0x422635
call fcn.0041d934
mov dword [esp], 0x422638
call fcn.0041d934
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0041f9d0
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x18c
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
and esp, 0xfffffff0
mov eax, 0x10
call int.0041f53c
call fcn.0041f8e0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0xac], 0xffffffff
mov dword [ebp - 0xa4], 0xffffffff
mov dword [ebp - 0xa8], 0xffffffff
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x90], 0x28
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x70], 0xffffffff
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x78], 0
mov dword [esp + 4], edi
mov dword [esp], esi
call fcn.0041d7dc
dec esi
mov dword [ebp - 0xa0], esi
add edi, 4
mov dword [ebp - 0x9c], edi
mov dword [esp + 0xac], 0x43a9a8
lea eax, [ebp - 0x6c]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa4], 0x420044
mov dword [esp + 0xa0], 0x41d798
lea eax, [ebp - 0x70]
mov dword [esp + 0x9c], eax
lea eax, [ebp - 0x74]
mov dword [esp + 0x98], eax
mov dword [esp + 0x94], 0x43aa28
mov dword [esp + 0x90], 0x420048
mov dword [esp + 0x8c], 0x43a9f8
mov dword [esp + 0x88], 0x43aa88
mov dword [esp + 0x84], 0x43a6f8
mov dword [esp + 0x80], 0x43aae8
mov dword [esp + 0x7c], 0x43a9c8
mov dword [esp + 0x78], 0x43aa78
mov dword [esp + 0x74], 0x43a998
mov dword [esp + 0x70], 0x43a978
mov dword [esp + 0x6c], 0x43aa18
mov dword [esp + 0x68], 0x43aab8
mov dword [esp + 0x64], 0x43a708
mov dword [esp + 0x60], 0x43aa98
lea eax, [ebp - 0x78]
mov dword [esp + 0x5c], eax
lea eax, [ebp - 0x7c]
mov dword [esp + 0x58], eax
lea eax, [ebp - 0x80]
mov dword [esp + 0x54], eax
lea eax, [ebp - 0x84]
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], 0x43aac8
mov dword [esp + 0x48], 0x43aac8
lea eax, [ebp - 0x88]
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], 0x43aa58
mov dword [esp + 0x38], 0x43aa58
lea eax, [ebp - 0x8c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], 0x43a9d8
mov dword [esp + 0x28], 0x43a9d8
mov dword [esp + 0x24], 0x43aa68
mov dword [esp + 0x20], 0x43aa68
lea eax, [ebp - 0x90]
mov dword [esp + 0x1c], eax
lea eax, [ebp - 0x94]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x98]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x420060
lea eax, [ebp - 0x9c]
mov dword [esp + 4], eax
lea eax, [ebp - 0xa0]
mov dword [esp], eax
call fcn.0041c701
test eax, eax
jns 0x401491
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x422689
mov dword [esp], 0xffffffff
call int.0041b899
mov dword [esp], 0xffffffff
call fcn.00401069
cmp dword [0x43aac8], 0
je 0x4014a6
mov dword [esp], 0
call fcn.00401069
cmp dword [ebp - 0x84], 0
je 0x4014e7
mov dword [esp + 0x10], 0x422698
mov dword [esp + 0xc], 0x42269f
mov dword [esp + 8], 0x4226a2
mov dword [esp + 4], 0x420000
mov dword [esp], 0x4226a8
call fcn.0041bfb1
mov dword [esp], 0
call fcn.0041f9d0
mov ebx, 0
mov dword [ebp - 0xa0], esi
mov dword [ebp - 0x9c], edi
jmp 0x4015fb
inc ebx
cmp ebx, 1
jne 0x40154e
lea eax, [ebp - 0xa4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0041c4d0
cmp byte [eax], 0
je 0x40154e
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4226eb
mov dword [esp], 0xffffffff
call int.0041b899
mov dword [esp], 0xffffffff
call fcn.00401069
cmp ebx, 2
jne 0x40159e
lea eax, [ebp - 0xa8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0041c4d0
cmp byte [eax], 0
je 0x40159e
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x422709
mov dword [esp], 0xffffffff
call int.0041b899
mov dword [esp], 0xffffffff
call fcn.00401069
cmp ebx, 3
jne 0x4015ee
lea eax, [ebp - 0xac]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0041c4d0
cmp byte [eax], 0
je 0x4015ee
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x422724
mov dword [esp], 0xffffffff
call int.0041b899
mov dword [esp], 0xffffffff
call fcn.00401069
dec dword [ebp - 0xa0]
add dword [ebp - 0x9c], 4
mov dword [esp + 8], 0x420060
lea eax, [ebp - 0x9c]
mov dword [esp + 4], eax
lea eax, [ebp - 0xa0]
mov dword [esp], eax
call fcn.0041c81b
test eax, eax
jg 0x4014fd
cmp dword [ebp - 0x80], 0
jne 0x401654
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x420044
mov dword [esp + 8], 0
mov dword [esp + 4], 0
lea eax, [ebp - 0x7c]
mov dword [esp], eax
call fcn.0041af14
cmp dword [ebp - 0x98], 0
je 0x401670
mov eax, dword [ebp - 0x7c]
mov dword [esp + 4], eax
mov dword [esp], 0x422743
call fcn.0041bfb1
cmp dword [ebp - 0x7c], 0
jne 0x4016a3
cmp dword [ebp - 0x80], 0
jne 0x4016a3
cmp dword [ebp - 0xac], 0
jns 0x401799
cmp dword [ebp - 0xa4], 0
jns 0x401799
cmp dword [ebp - 0xa8], 0
jns 0x401799
call fcn.0040f954
cmp dword [ebp - 0x7c], 0
je 0x40170e
mov ebx, dword [ebp - 0x7c]
mov esi, ebx
mov edi, 0x42274e
mov ecx, 4
cld
repe cmpsb byte [esi], byte es:[edi]
seta byte [ebp - 0xb9]
setb al
cmp byte [ebp - 0xb9], al
je 0x4016f2
mov esi, ebx
mov edi, 0x422753
mov ecx, 4
repe cmpsb byte [esi], byte es:[edi]
seta byte [ebp - 0xba]
setb al
cmp byte [ebp - 0xba], al
jne 0x40170e
call fcn.0041f9c0
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call int.00412d8a
mov dword [esp], 0
call fcn.0041f9d0
mov eax, dword [0x43a9d8]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x98]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x50
lea ebx, [ebp - 0x68]
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x7c]
mov dword [esp], eax
call fcn.004127c8
mov esi, eax
test eax, eax
jne 0x401749
mov dword [esp], ebx
call fcn.00401d12
cmp dword [ebp - 0x80], 0
jne 0x40181d
cmp dword [esi + 8], 0
jns 0x40181d
cmp dword [esi + 0xc], 0
jns 0x40181d
cmp dword [esi + 0x10], 0
jns 0x40181d
mov eax, dword [ebp - 0x7c]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00401d92
test eax, eax
jns 0x40181d
mov dword [esp], 0x422758
call fcn.00401d12
jmp 0x40181d
cmp dword [ebp - 0xac], 0xffffffff
jne 0x4017be
cmp dword [ebp - 0xa4], 0
js 0x4017be
cmp dword [ebp - 0xa8], 0
js 0x4017be
mov dword [ebp - 0xac], 0
call fcn.00412fe8
mov esi, eax
mov eax, dword [ebp - 0x98]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x94]
mov dword [esi + 0x1c], eax
mov eax, dword [ebp - 0xa8]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xa4]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.004131b0
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.004111a1
test eax, eax
jg 0x40181d
mov dword [esp], 0x422759
call fcn.0041b7d1
mov eax, dword [ebp - 0x88]
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0x8c]
mov dword [esi + 0x28], eax
mov eax, dword [ebp - 0x98]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x94]
mov dword [esi + 0x1c], eax
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00412fda
cmp dword [0x420044], 0
jns 0x401866
mov dword [0x420044], 0x40000
mov eax, dword [0x420044]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00411240
mov dword [0x420044], eax
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00411284
mov dword [0x43a968], eax
test eax, eax
jne 0x40189d
mov dword [esp], 0x422773
call fcn.0041b7d1
cmp dword [0x43aa38], 0
jne 0x4018bf
call fcn.0041f9b0
mov ebx, eax
call fcn.0041f9a0
cmp ebx, eax
setne al
movzx eax, al
mov dword [0x43aa38], eax
call fcn.0041f9a0
mov dword [esp + 4], eax
mov dword [esp], 0xffffffff
call fcn.0041f990
test eax, eax
jns 0x4018e4
mov dword [esp], 0x422790
call fcn.0041b7d1
cmp dword [ebp - 0x80], 0
je 0x40191a
call fcn.0041f9c0
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00406b08
test eax, eax
jns 0x40190e
mov dword [esp], 0x422758
call fcn.00401d12
mov dword [esp], 0
call fcn.0041f9d0
mov dword [esp], 0
call fcn.0041c610
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.0040b86e
test eax, eax
jne 0x40195d
call fcn.0041c600
cmp eax, 1
sete cl
cmp eax, 0xd
sete al
or eax, ecx
test al, 1
je 0x40195d
mov dword [esp], 0x422758
call fcn.00401d12
mov dword [esp + 4], 1
mov dword [esp], esi
call fcn.00408aaf
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.0040bc8b
test eax, eax
je 0x401bd7
mov ecx, dword [esi + 0x8c]
movzx edx, byte [ecx + 3]
mov al, dl
and al, 0xf
cmp al, 1
ja 0x4019a8
mov al, dl
and al, 0xf0
or al, 2
mov byte [ecx + 3], al
mov dword [esp], esi
call fcn.0040cab8
mov dword [ebp - 0xb8], eax
test eax, eax
js 0x401a05
lea eax, [eax - 8]
cmp eax, 7
ja 0x4019cc
mov dword [0x43a9e8], 1
mov eax, dword [ebp - 0xb8]
sub eax, 0x10
cmp eax, 0xf
ja 0x4019e4
mov dword [0x43aa48], 1
mov eax, dword [ebp - 0xb8]
sub eax, 0x40
cmp eax, 0xf
ja 0x401aa5
mov dword [0x43aad8], 1
jmp 0x401aa5
mov dword [esp + 0x18], 0
lea eax, [ebp - 0xb0]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], esi
call int.0040bd11
cmp dword [ebp - 0xb0], 0
jne 0x401a54
mov dword [0x43a9e8], 1
jmp 0x401aa5
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x20
lea eax, [ebp - 0x68]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.0040844c
test eax, eax
js 0x401a9b
mov dword [0x43aa48], 1
jmp 0x401aa5
mov dword [0x43a9e8], 1
cmp dword [ebp - 0x70], 0
jle 0x401ab5
imul eax, dword [ebp - 0x70], 0xb1
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x70], 0xffff
jbe 0x401ac5
mov dword [ebp - 0x70], 0xffff
mov dword [esp + 0xc], 0
mov eax, dword [ebp - 0x70]
mov dword [esp + 8], eax
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00407751
lea eax, [ebp - 0xb4]
mov dword [esp + 8], eax
lea eax, [ebp - 0xb8]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00407810
test eax, eax
js 0x401bd7
mov ecx, dword [ebp - 0xb8]
mov eax, 0x74a356bd
imul ecx
mov ebx, edx
sar ebx, 0xb
mov eax, ecx
sar eax, 0x1f
mov dword [ebp - 0xdc], eax
sub ebx, eax
mov dword [esp + 0x10], ebx
mov eax, 0x5ea306d7
imul ecx
mov dword [ebp - 0xc4], edx
sar edx, 9
mov dword [ebp - 0xc8], edx
sub edx, dword [ebp - 0xdc]
mov dword [esp + 0xc], edx
mov edi, 0x2e8ba2e9
mov eax, ecx
imul edi
mov dword [ebp - 0xcc], edx
sar edx, 5
mov dword [ebp - 0xd0], edx
sub edx, dword [ebp - 0xdc]
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], 0x4227b8
call fcn.0041d934
mov ebx, dword [ebp - 0xb4]
mov eax, 0x74a356bd
imul ebx
mov ecx, edx
sar ecx, 0xb
mov edx, ebx
sar edx, 0x1f
mov dword [ebp - 0xdc], edx
sub ecx, edx
mov dword [esp + 0x10], ecx
mov eax, 0x5ea306d7
imul ebx
mov ecx, edx
sar ecx, 9
sub ecx, dword [ebp - 0xdc]
mov dword [esp + 0xc], ecx
mov eax, ebx
imul edi
mov ecx, edx
sar ecx, 5
mov eax, ecx
sub eax, dword [ebp - 0xdc]
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], 0x4227f0
call fcn.0041d934
mov dword [0x43a948], esi
mov dword [0x43a94c], 0xffffffff
mov dword [0x43a954], 0
mov dword [0x43a958], 0
mov byte [0x43a95e], 0
mov dword [esp + 4], 0x43a948
mov dword [esp], fcn.00401f71
call fcn.0041b794
mov dword [esp + 4], 0x401f5e
mov dword [esp], 2
call fcn.0041f980
mov dword [esp + 4], 0x401f5e
mov dword [esp], 0xf
call fcn.0041f980
cmp dword [ebp - 0x6c], 0
je 0x401c58
mov dword [esp], esi
call fcn.00406094
mov dword [esp], 0
call fcn.0041b988
cmp dword [0x43aa38], 0
je 0x401c84
mov eax, dword [esi + 0x8c]
movzx eax, byte [eax]
and al, 0x1f
cmp al, 5
je 0x401c84
mov dword [esp + 4], 0x422828
mov dword [esp], 0xffffffff
call fcn.0041b818
cmp dword [ebp - 0x74], 0
jne 0x401cd8
cmp dword [ebp - 0x78], 0
jne 0x401cd8
cmp dword [0x43a708], 0
jne 0x401cd8
cmp dword [0x43aab8], 0
jne 0x401cd8
cmp dword [0x43aa18], 0
jne 0x401cd8
cmp dword [0x43a978], 0
jne 0x401cd8
cmp dword [0x43a9a8], 0
jne 0x401cd8
cmp dword [0x43aa78], 0
jne 0x401cd8
cmp dword [0x43a9c8], 0
jne 0x401cd8
cmp dword [0x43aae8], 0
je 0x401cf0
mov eax, dword [ebp - 0x78]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x74]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.0040212f
jmp 0x401cf8
mov dword [esp], esi
call fcn.00402437
mov eax, dword [0x43a958]
mov dword [esp], eax
call fcn.0041b988
mov eax, dword [0x43a958]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret