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

Disassembly:
sub esp, 0x30
cmp byte [esp + 0x40], 0
push ebx
push ebp
mov ebp, dword [esp + 0x44]
push esi
push edi
mov edi, dword [esp + 0x44]
mov dword [esp + 0x38], 0
je 0x41f3bc
push 0x11c
call fcn.00422ab0
mov ecx, eax
add esp, 4
mov eax, dword [edi + 0xc]
push 0
mov eax, dword [eax + 0x14]
push 0
push edi
test dword [eax + 0x9c], ecx
je 0x41f27c
call fcn.004229d0
mov ebx, dword [esp + 0x54]
push eax
push ebx
push 0x11c
push edi
call fcn.00421170
jmp 0x41f292
call fcn.004229d0
mov ebx, dword [esp + 0x54]
push eax
push ebx
push 0x11c
push edi
call fcn.0041cdb0
movsd xmm0, qword [0x509e80]
add esp, 0x1c
mov dword [esp + 0x44], eax
push ebp
sub esp, 8
movsd qword [esp], xmm0
call fcn.00407920
push ebp
push 1
push dword [edi + 0xc]
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edx
call fcn.004097b0
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x41f2cf
xor ebp, ebp
jmp 0x41f2ea
mov eax, dword [esp + 0x38]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x34]
push esi
push edi
mov dword [esi + 0x34], eax
call fcn.0041d130
add esp, 8
lea ebp, [esi + 0x18]
mov esi, dword [esp + 0x4c]
movsd xmm0, qword [0x528988]
push esi
sub esp, 8
movsd qword [esp], xmm0
call fcn.00407920
push esi
push 1
push dword [edi + 0xc]
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edx
call fcn.004097b0
mov esi, eax
add esp, 0x18
test esi, esi
je 0x41f33b
mov eax, dword [esp + 0x38]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x34]
push esi
push edi
mov dword [esi + 0x34], eax
call fcn.0041d130
add esp, 8
add esi, 0x18
push ebp
push esi
push dword [esp + 0x4c]
push 0x71
push edi
call fcn.0041ce20
push 0x109
mov dword [esp + 0x50], eax
call fcn.00422ab0
mov ecx, dword [edi + 0xc]
add esp, 0x18
mov ecx, dword [ecx + 0x14]
push ebx
test dword [ecx + 0x9c], eax
je 0x41f3a6
push 0x19b
push edi
call fcn.0041cd60
push 0
push 0
push eax
push edi
call fcn.0041aa40
push ebx
push 0x131
push edi
mov esi, eax
call fcn.0041cd60
push ebx
push eax
push esi
push 0x71
push edi
call fcn.0041ce20
mov ebp, dword [esp + 0x88]
add esp, 0x3c
mov esi, eax
jmp 0x41f3c0
push 0x109
push edi
call fcn.0041cd60
mov ebp, dword [esp + 0x58]
add esp, 0xc
mov esi, eax
jmp 0x41f3c0
mov esi, dword [esp + 0x48]
push 0x17c
call fcn.00422ab0
mov ecx, dword [edi + 0xc]
add esp, 4
mov ecx, dword [ecx + 0x14]
push esi
test dword [ecx + 0x9c], eax
je 0x41f3e7
push edi
call fcn.00422680
add esp, 8
jmp 0x41f3f5
push 0x17c
push edi
call fcn.0041cd60
add esp, 0xc
mov dword [esp + 0x14], eax
cmp ebp, 0x10
je 0x41f410
cmp ebp, 0x20
mov eax, 0x34
mov ebp, 0x17
cmovne ebp, eax
jmp 0x41f415
mov ebp, 0xa
push 0x20
push 0
push 0
mov dword [esp + 0x28], ebp
call fcn.0040f5b0
push 0x20
push 1
push dword [edi + 0xc]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
call fcn.004097b0
mov ebx, eax
add esp, 0x18
test ebx, ebx
je 0x41f45c
mov eax, dword [esp + 0x20]
mov dword [ebx + 0x30], eax
mov eax, dword [esp + 0x24]
push ebx
push edi
mov dword [ebx + 0x34], eax
call fcn.0041d130
add esp, 8
add ebx, 0x18
mov eax, ebp
push 0
neg eax
push eax
push dword [esp + 0x1c]
push edi
call fcn.004101b0
push ebx
push eax
push 0x123
push edi
call fcn.0041cdb0
mov ebx, eax
push 0x1ac
mov dword [esp + 0x3c], ebx
call fcn.00422ab0
mov ecx, dword [edi + 0xc]
add esp, 0x24
mov ecx, dword [ecx + 0x14]
push ebx
push esi
test dword [ecx + 0x9c], eax
je 0x41f4a8
push edi
call fcn.00422770
add esp, 0xc
jmp 0x41f4b6
push 0x1ac
push edi
call fcn.0041cdb0
add esp, 0x10
mov ebx, eax
cmp ebp, 0x20
jae 0x41f4f7
push 0x16d
call fcn.00422ab0
mov ecx, dword [edi + 0xc]
add esp, 4
mov ecx, dword [ecx + 0x14]
test dword [ecx + 0x9c], eax
je 0x41f4e0
push ebx
push 0x19a
jmp 0x41f4ec
cmp byte [ebx + 0x11], 0x20
je 0x41f4f7
push ebx
push 0x16d
push edi
call fcn.0041cd60
mov ebx, eax
add esp, 0xc
push 0x139
call fcn.00422ab0
mov ebp, dword [edi + 0xc]
push 0x40
push 0
push 1
mov dword [esp + 0x40], eax
call fcn.0040f5b0
mov ecx, dword [esp + 0x40]
add esp, 0x10
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x10], edx
push 0x40
push 1
push ebp
test dword [eax + 0x9c], ecx
je 0x41f57b
call fcn.004097b0
mov ebp, eax
add esp, 0xc
test ebp, ebp
jne 0x41f550
push dword [esp + 0x18]
push ebp
push edi
call fcn.004215c0
add esp, 0xc
jmp 0x41f5b7
mov eax, dword [esp + 0x44]
mov dword [ebp + 0x30], eax
mov eax, dword [esp + 0x10]
push ebp
push edi
mov dword [ebp + 0x34], eax
call fcn.0041d130
add esp, 8
add ebp, 0x18
push dword [esp + 0x18]
push ebp
push edi
call fcn.004215c0
add esp, 0xc
jmp 0x41f5b7
call fcn.004097b0
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x41f5a4
mov eax, dword [esp + 0x44]
mov dword [ebp + 0x30], eax
mov eax, dword [esp + 0x10]
push ebp
push edi
mov dword [ebp + 0x34], eax
call fcn.0041d130
add esp, 8
add ebp, 0x18
push dword [esp + 0x18]
push ebp
push 0x139
push edi
call fcn.0041cdb0
add esp, 0x10
push 0x13c
mov ebp, eax
call fcn.00422ab0
mov edx, dword [edi + 0xc]
add esp, 4
mov ecx, dword [edx + 0x14]
push 0x40
push 1
push edx
test dword [ecx + 0x9c], eax
je 0x41f622
call fcn.004097b0
add esp, 0xc
mov dword [esp + 0x34], eax
test eax, eax
jne 0x41f5f6
push eax
push ebp
push edi
call fcn.00421890
add esp, 0xc
jmp 0x41f661
mov ecx, dword [esp + 0x44]
mov dword [eax + 0x30], ecx
mov ecx, dword [esp + 0x10]
push eax
push edi
mov dword [eax + 0x34], ecx
call fcn.0041d130
mov eax, dword [esp + 0x3c]
add esp, 8
add eax, 0x18
push eax
push ebp
push edi
call fcn.00421890
add esp, 0xc
jmp 0x41f661
call fcn.004097b0
add esp, 0xc
mov dword [esp + 0x34], eax
test eax, eax
je 0x41f651
mov ecx, dword [esp + 0x44]
mov dword [eax + 0x30], ecx
mov ecx, dword [esp + 0x10]
push eax
push edi
mov dword [eax + 0x34], ecx
call fcn.0041d130
mov eax, dword [esp + 0x3c]
add esp, 8
add eax, 0x18
push eax
push ebp
push 0x13c
push edi
call fcn.0041cdb0
add esp, 0x10
push 0x13a
mov dword [esp + 0x48], eax
call fcn.00422ab0
push 0x20
push 0
push 1
mov dword [esp + 0x44], eax
call fcn.0040f5b0
mov ecx, dword [edi + 0xc]
add esp, 0x10
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x34]
mov eax, dword [ecx + 0x14]
push 0x20
push 1
push ecx
test dword [eax + 0x9c], edx
je 0x41f6e9
call fcn.004097b0
add esp, 0xc
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x41f6bd
push eax
push ebp
push edi
call fcn.00421720
add esp, 0xc
jmp 0x41f728
mov ecx, dword [esp + 0x10]
mov dword [eax + 0x30], ecx
mov ecx, dword [esp + 0x28]
push eax
push edi
mov dword [eax + 0x34], ecx
call fcn.0041d130
mov eax, dword [esp + 0x34]
add esp, 8
add eax, 0x18
push eax
push ebp
push edi
call fcn.00421720
add esp, 0xc
jmp 0x41f728
call fcn.004097b0
add esp, 0xc
mov dword [esp + 0x2c], eax
test eax, eax
je 0x41f718
mov ecx, dword [esp + 0x10]
mov dword [eax + 0x30], ecx
mov ecx, dword [esp + 0x28]
push eax
push edi
mov dword [eax + 0x34], ecx
call fcn.0041d130
mov eax, dword [esp + 0x34]
add esp, 8
add eax, 0x18
push eax
push ebp
push 0x13a
push edi
call fcn.0041cdb0
add esp, 0x10
push 0x10d
mov dword [esp + 0x14], eax
call fcn.00422ab0
mov ecx, dword [edi + 0xc]
add esp, 4
mov dword [esp + 0x2c], eax
mov ecx, dword [ecx + 0x14]
push dword [esp + 0x44]
push esi
test dword [ecx + 0x9c], eax
je 0x41f75b
push edi
call fcn.00420120
add esp, 0xc
jmp 0x41f769
push 0x10d
push edi
call fcn.0041cdb0
add esp, 0x10
push 0x111
mov dword [esp + 0x48], eax
call fcn.00422ab0
mov ecx, dword [edi + 0xc]
add esp, 4
push dword [esp + 0x10]
mov ecx, dword [ecx + 0x14]
push dword [esp + 0x48]
push 0x111
push edi
test dword [ecx + 0x9c], eax
je 0x41f79d
call fcn.00421170
jmp 0x41f7a2
call fcn.0041cdb0
add esp, 0x10
mov dword [esp + 0x28], eax
push 0
push 0
push dword [esp + 0x20]
push edi
call fcn.00422a20
push eax
push dword [esp + 0x3c]
push 0x10d
push edi
call fcn.0041cdb0
mov ecx, dword [edi + 0xc]
push 0x12d
mov dword [esp + 0x60], eax
mov ecx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x9c]
mov dword [esp + 0x4c], ecx
call fcn.00422ab0
mov ecx, dword [esp + 0x4c]
add esp, 0x24
push ebp
push esi
test ecx, eax
je 0x41f87b
test dword [esp + 0x34], ecx
je 0x41f807
push edi
call fcn.00420120
add esp, 0xc
jmp 0x41f815
push 0x10d
push edi
call fcn.0041cdb0
add esp, 0x10
push 0x40
push 0
push 0
mov ebp, eax
call fcn.0040f5b0
push 0x40
push 1
push dword [edi + 0xc]
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], edx
call fcn.004097b0
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x41f851
push ebp
push esi
push 0x12d
push edi
call fcn.00421170
jmp 0x41f8ec
mov eax, dword [esp + 0x2c]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x28]
push esi
push edi
mov dword [esi + 0x34], eax
call fcn.0041d130
add esp, 8
add esi, 0x18
push ebp
push esi
push 0x12d
push edi
call fcn.00421170
jmp 0x41f8ec
test dword [esp + 0x34], ecx
je 0x41f88c
push edi
call fcn.00420120
add esp, 0xc
jmp 0x41f89a
push 0x10d
push edi
call fcn.0041cdb0
add esp, 0x10
push 0x40
push 0
push 0
mov ebp, eax
call fcn.0040f5b0
push 0x40
push 1
push dword [edi + 0xc]
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], edx
call fcn.004097b0
mov esi, eax
add esp, 0x18
test esi, esi
je 0x41f8df
mov eax, dword [esp + 0x2c]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x28]
push esi
push edi
mov dword [esi + 0x34], eax
call fcn.0041d130
add esp, 8
add esi, 0x18
push ebp
push esi
push 0x12d
push edi
call fcn.0041cdb0
add esp, 0x10
mov ebp, eax
push 0x11c
call fcn.00422ab0
mov ecx, dword [edi + 0xc]
add esp, 4
push dword [esp + 0x44]
mov ecx, dword [ecx + 0x14]
push dword [esp + 0x14]
push 0x11c
push edi
test dword [ecx + 0x9c], eax
je 0x41f921
call fcn.00421170
jmp 0x41f926
call fcn.0041cdb0
add esp, 0x10
mov esi, eax
push ebp
push dword [esp + 0x40]
push 0x10d
push edi
call fcn.0041cdb0
push eax
push esi
push 0x136
push edi
call fcn.0041cdb0
mov esi, dword [edi + 0xc]
add esp, 0x20
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x44], eax
mov ecx, dword [esi + 0x104]
cmp edx, 0x10
jne 0x41f9d0
test ecx, 0x40000
je 0x41f9f4
push dword [esp + 0x18]
push 0x167
push edi
call fcn.0041cd60
push eax
push 0xcb
push edi
call fcn.0041cd60
push ebx
push 0x167
push edi
mov esi, eax
call fcn.0041cd60
mov edx, 0xe1
mov ebp, eax
add esp, 0x24
push esi
push ebp
mov ecx, edi
push edx
push ecx
call fcn.0041cdb0
add esp, 0x10
cmp byte [esp + 0x50], 0
je 0x41f9c8
push dword [esp + 0x38]
push eax
push 0xe1
push edi
call fcn.0041cdb0
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret
cmp edx, 0x20
jne 0x41f9e3
test ecx, 0x80000
jne 0x41fd28
jmp 0x41f9f4
cmp edx, 0x40
jne 0x41f9f4
test ecx, 0x100000
jne 0x41faab
cmp dword [esp + 0x1c], 0x20
jb 0x41fa83
mov eax, dword [esi + 0x14]
push 0x10a
mov esi, dword [eax + 0x9c]
mov ebp, esi
and ebp, 0x800000
call fcn.00422ab0
add esp, 4
push dword [esp + 0x44]
test esi, eax
je 0x41fa57
test ebp, ebp
je 0x41fa3f
push edi
call fcn.0041fd50
add esp, 8
push eax
push ebx
push edi
call fcn.00420070
add esp, 0xc
jmp 0x41fa9c
push 0x24
push edi
call fcn.0041cd60
add esp, 0xc
push eax
push ebx
push edi
call fcn.00420070
add esp, 0xc
jmp 0x41fa9c
test ebp, ebp
je 0x41fa66
push edi
call fcn.0041fd50
add esp, 8
jmp 0x41fa71
push 0x24
push edi
call fcn.0041cd60
add esp, 0xc
push eax
push ebx
push 0x10a
push edi
call fcn.0041cdb0
add esp, 0x10
jmp 0x41fa9c
push eax
push 0x23
push edi
call fcn.0041cd60
push eax
push ebx
push 0x10a
push edi
call fcn.0041cdb0
add esp, 0x1c
mov esi, dword [esp + 0x4c]
mov ebx, eax
cmp esi, 0x40
jne 0x41fd1f
push 0x20
push 1
push dword [edi + 0xc]
call fcn.004097b0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x41fac4
xor ebp, ebp
jmp 0x41fadf
mov eax, dword [esp + 0x20]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x24]
push esi
push edi
mov dword [esi + 0x34], eax
call fcn.0041d130
add esp, 8
lea ebp, [esi + 0x18]
mov eax, dword [esp + 0x14]
movzx esi, byte [eax + 0x11]
push esi
push 0
push dword [esp + 0x24]
call fcn.0040f5b0
push esi
push 1
push dword [edi + 0xc]
mov dword [esp + 0x64], eax
mov dword [esp + 0x5c], edx
call fcn.004097b0
mov esi, eax
add esp, 0x18
test esi, esi
je 0x41fb2a
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x44]
push esi
push edi
mov dword [esi + 0x34], eax
call fcn.0041d130
add esp, 8
add esi, 0x18
push dword [esp + 0x14]
push esi
push 0x13c
push edi
call fcn.0041cdb0
push ebp
push eax
push 0x123
push edi
call fcn.0041cdb0
mov ecx, dword [edi + 0xc]
add esp, 0x20
mov edx, dword [esp + 0x30]
mov ecx, dword [ecx + 0x14]
push eax
push ebx
test dword [ecx + 0x9c], edx
je 0x41fb69
push edi
call fcn.004215c0
add esp, 0xc
jmp 0x41fb77
push 0x139
push edi
call fcn.0041cdb0
add esp, 0x10
mov ebx, eax
push ebx
push 0x19b
push edi
call fcn.0041cd60
mov ecx, dword [esp + 0x28]
mov esi, eax
mov eax, 1
lea ecx, [ecx - 0x1f]
shl eax, cl
cdq
push edx
push eax
push esi
push edi
call fcn.00422d40
push eax
push 0x23
push edi
call fcn.0041cd60
mov ecx, dword [edi + 0xc]
add esp, 0x28
mov esi, eax
mov eax, dword [esp + 0x34]
mov ecx, dword [ecx + 0x14]
push esi
push ebx
test dword [ecx + 0x9c], eax
je 0x41fbcc
push edi
call fcn.00421720
add esp, 0xc
jmp 0x41fbda
push 0x13a
push edi
call fcn.0041cdb0
add esp, 0x10
push esi
push dword [esp + 0x18]
mov ebx, eax
push 0x10a
push edi
call fcn.0041cdb0
push 0
mov ebp, eax
push 0x3ff
push ebp
push edi
call fcn.004101b0
push 0x20
push 1
push dword [edi + 0xc]
mov dword [esp + 0x78], eax
call fcn.004097b0
mov esi, eax
add esp, 0x2c
test esi, esi
je 0x41fc30
mov eax, dword [esp + 0x20]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x24]
push esi
push edi
mov dword [esi + 0x34], eax
call fcn.0041d130
add esp, 8
add esi, 0x18
push 0
push 0
push ebp
push edi
call fcn.0041aa40
push dword [esp + 0x5c]
push esi
push eax
push 0x71
push edi
call fcn.0041ce20
push ebx
push 0x19a
push edi
mov dword [esp + 0x6c], eax
call fcn.0041cd60
push 0x20
push 0
push 0x14
mov ebp, eax
call fcn.0040f5b0
push 0x20
push 1
push dword [edi + 0xc]
mov dword [esp + 0x94], eax
mov dword [esp + 0x8c], edx
call fcn.004097b0
mov esi, eax
add esp, 0x48
test esi, esi
jne 0x41fc8f
mov dword [esp + 0x4c], eax
jmp 0x41fcae
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x44]
push esi
push edi
mov dword [esi + 0x34], eax
call fcn.0041d130
lea eax, [esi + 0x18]
add esp, 8
mov dword [esp + 0x4c], eax
push ebx
push 0x19b
push edi
call fcn.0041cd60
push 0x20
push 0
push 0xb
mov dword [esp + 0x4c], eax
call fcn.0040f5b0
push 0x20
push 1
push dword [edi + 0xc]
mov ebx, eax
mov dword [esp + 0x68], edx
call fcn.004097b0
mov esi, eax
add esp, 0x24
test esi, esi
je 0x41fcfb
mov eax, dword [esp + 0x44]
push esi
mov dword [esi + 0x30], ebx
push edi
mov dword [esi + 0x34], eax
call fcn.0041d130
add esp, 8
add esi, 0x18
push esi
push dword [esp + 0x50]
push dword [esp + 0x44]
push dword [esp + 0x40]
push 0x75
push edi
call fcn.0041cea0
add esp, 0x18
mov esi, eax
mov edx, 0x14e
jmp 0x41f9a0
cmp esi, 0x20
jne 0x41f96d
push dword [esp + 0x18]
push 0x168
push edi
call fcn.0041cd60
push eax
push 0xcb
push edi
call fcn.0041cd60
push ebx
push 0x168
jmp 0x41f98e