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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x118
mov eax, dword [0x46600c]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x10]
lea edx, [ebp - 0xf0]
push ebx
push esi
mov esi, dword [ebp + 0x18]
xor ebx, ebx
push edi
mov edi, ecx
mov dword [ebp - 0xe0], eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0x108], ecx
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xf0], ebx
mov dword [ebp - 0xec], ebx
mov dword [ebp - 0xe8], ebx
call fcn.004219c6
mov edx, dword [ebp - 0xec]
cmp dword [ebp - 0xf0], edx
jne 0x41e73e
mov eax, 0x80004005
jmp 0x41e811
mov eax, dword [edi + 0x34]
mov ecx, ebx
mov dword [ebp - 0x100], ecx
sub eax, 1
je 0x41e818
dec eax
sub eax, 1
jne 0x41e829
mov edx, dword [edi + 0x80]
mov eax, dword [edi + 0x84]
cmp edx, eax
je 0x41e7f6
sub eax, edx
push 0x18
cdq
pop esi
idiv esi
sub eax, 1
mov dword [ebp - 0xf8], eax
js 0x41e829
imul edx, eax, 0x18
mov dword [ebp - 0xf4], edx
mov ecx, dword [edi + 0x80]
add ecx, edx
mov dword [ebp - 0x14], ebx
lea edx, [ebp - 0x14]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], ebx
call fcn.004219c6
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0xf0]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.0042021f
lea ecx, [ebp - 0x14]
mov esi, eax
call fcn.00401fed
test esi, esi
je 0x41e7ee
mov eax, dword [ebp - 0xf8]
mov edx, dword [ebp - 0xf4]
dec eax
sub edx, 0x18
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xf4], edx
test eax, eax
jns 0x41e790
mov ecx, dword [ebp - 0x100]
jmp 0x41e829
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0xf0]
push eax
lea eax, [edi + 0x74]
push eax
call fcn.0042021f
test eax, eax
je 0x41e7ee
mov dword [esi], eax
jmp 0x41efbf
sub edx, dword [ebp - 0xf0]
mov eax, edx
push 0x18
pop ecx
cdq
idiv ecx
lea ecx, [eax - 1]
push ecx
xor edx, edx
lea ecx, [ebp - 0xf0]
call fcn.0041cfb8
pop ecx
lea ecx, [ebp - 0xf0]
call fcn.0042162e
lea edx, [ebp - 0xf0]
lea ecx, [ebp - 0x94]
call fcn.00421946
cmp dword [edi + 0x34], 2
mov byte [ebp - 0xd5], bl
jne 0x41e92e
cmp dword [ebp - 0x84], 1
jbe 0x41e92e
cmp dword [ebp - 0x80], 8
lea eax, [ebp - 0x94]
cmovae eax, dword [ebp - 0x94]
cmp word [eax + 2], 0x5f
jne 0x41e92e
cmp dword [ebp - 0x84], 2
jne 0x41e8a4
mov eax, dword [ebp - 0xe0]
cmp byte [eax + 0x94], bl
jne 0x41e8d4
cmp dword [ebp - 0x80], 8
lea eax, [ebp - 0x94]
cmovae eax, dword [ebp - 0x94]
cmp word [eax + 4], 0x5c
je 0x41e8d4
cmp dword [ebp - 0x80], 8
lea eax, [ebp - 0x94]
cmovae eax, dword [ebp - 0x94]
cmp word [eax + 4], 0x2f
jne 0x41e92e
push 1
push ebx
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x94]
call fcn.00403107
push 0x3a
pop esi
push esi
lea ecx, [ebp - 0x38]
call fcn.00403171
lea ecx, [ebp - 0x38]
call fcn.0040efc0
test al, al
je 0x41e91a
cmp dword [ebp - 0x80], 8
lea eax, [ebp - 0x94]
mov byte [ebp - 0xd5], 1
cmovae eax, dword [ebp - 0x94]
mov word [eax + 2], si
lea ecx, [ebp - 0x38]
call fcn.0040203f
cmp byte [ebp - 0xd5], bl
jne 0x41e9c5
cmp byte [edi + 0x3d], bl
je 0x41e9c5
lea eax, [edi + 0xa4]
push eax
lea ecx, [ebp - 0x20]
call fcn.00402436
cmp dword [ebp - 0x10], ebx
jne 0x41e95a
lea eax, [edi + 0x8c]
push eax
lea ecx, [ebp - 0x20]
call fcn.00401f8e
cmp byte [edi + 0xf1], bl
je 0x41e974
mov ecx, dword [ebp - 0xf0]
lea edx, [ebp - 0x20]
call fcn.004032a1
test al, al
jne 0x41e990
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0xf0]
lea eax, [ebp - 0xf4]
push eax
lea ecx, [ebp - 0xf0]
call fcn.0042076e
lea ecx, [ebp - 0xf0]
call fcn.0042162e
lea edx, [ebp - 0xf0]
lea ecx, [ebp - 0x58]
call fcn.00421946
push eax
lea ecx, [ebp - 0x94]
call fcn.004023ff
lea ecx, [ebp - 0x58]
call fcn.0040203f
lea ecx, [ebp - 0x20]
call fcn.0040203f
mov esi, dword [ebp - 0xe0]
mov dl, byte [esi + 0x94]
test dl, dl
jne 0x41ea01
mov eax, dword [ebp - 0xec]
mov dl, bl
cmp dword [ebp - 0xf0], eax
je 0x41ea01
lea esi, [eax - 0x18]
mov ecx, esi
call fcn.0040203f
mov dword [ebp - 0xec], esi
mov esi, dword [ebp - 0xe0]
mov dl, byte [esi + 0x94]
mov al, 1
test dl, dl
je 0x41ea13
xor ecx, ecx
movzx eax, al
cmp dword [edi + 0x34], 1
cmove eax, ecx
xor ecx, ecx
movzx eax, al
cmp dword [edi + 0x30], 2
cmovne ecx, eax
test cl, cl
je 0x41ec09
xor eax, eax
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], 7
mov word [ebp - 0x20], ax
mov byte [ebp - 0xd6], bl
cmp byte [ebp - 0xd5], al
je 0x41ea82
test dl, dl
je 0x41ea5a
lea eax, [ebp - 0x94]
push eax
lea ecx, [ebp - 0x20]
call fcn.00401f8e
jmp 0x41ea68
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0x94]
call fcn.0040dd90
lea ecx, [ebp - 0x20]
call fcn.0040f220
test al, al
jne 0x41ea7e
lea ecx, [ebp - 0x20]
call fcn.00410e30
jmp 0x41ea94
mov al, 1
jmp 0x41ea9b
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
lea eax, [ebp - 0xf0]
push eax
call fcn.0041da76
mov byte [ebp - 0xd6], 1
test al, al
jne 0x41eaed
lea ecx, [ebp - 0x58]
call fcn.00414660
mov ecx, eax
cmp dword [ecx + 0x14], 8
jb 0x41eab1
mov ecx, dword [ecx]
cmp dword [ebp - 0xc], 8
lea eax, [ebp - 0x20]
push ecx
cmovae eax, dword [ebp - 0x20]
push eax
lea eax, [ebp - 0x38]
push 0x271a
push eax
call fcn.00403320
add esp, 0x10
lea ecx, [ebp - 0x58]
call fcn.0040203f
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
push dword [ebp + 8]
call fcn.0041ff80
lea ecx, [ebp - 0x38]
call fcn.0040203f
cmp byte [ebp - 0xd5], bl
jne 0x41eb02
cmp byte [esi + 0x94], bl
jne 0x41eb1c
jmp 0x41ec01
mov al, byte [esi + 0x94]
cmp byte [ebp - 0xd6], bl
je 0x41ec01
test al, al
je 0x41ec01
cmp byte [edi + 0x70], bl
jne 0x41eb2f
cmp byte [edi + 0x71], bl
jne 0x41eb2f
cmp byte [edi + 0x72], bl
je 0x41ec01
xor eax, eax
mov dword [ebp - 0x6c], ebx
mov word [ebp - 0x7c], ax
lea ecx, [ebp - 0x7c]
lea eax, [ebp - 0x20]
mov dword [ebp - 0x68], 7
push eax
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov byte [ebp - 0x5c], bl
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov byte [ebp - 0x50], bl
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
mov byte [ebp - 0x44], bl
call fcn.00401f8e
cmp byte [edi + 0x70], bl
je 0x41eb83
cmp byte [esi + 0x90], bl
je 0x41eb83
mov eax, dword [esi + 0x6c]
mov dword [ebp - 0x64], eax
mov eax, dword [esi + 0x70]
mov dword [ebp - 0x60], eax
mov byte [ebp - 0x5c], 1
cmp byte [edi + 0x71], bl
je 0x41eba0
cmp byte [esi + 0x91], bl
je 0x41eba0
mov eax, dword [esi + 0x74]
mov dword [ebp - 0x58], eax
mov eax, dword [esi + 0x78]
mov dword [ebp - 0x54], eax
mov byte [ebp - 0x50], 1
cmp byte [edi + 0x72], bl
je 0x41ebbb
cmp byte [esi + 0x92], bl
je 0x41ebbb
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x4c], eax
mov eax, dword [esi + 0x80]
jmp 0x41ebca
mov eax, dword [edi + 0xbc]
mov dword [ebp - 0x4c], eax
mov eax, dword [edi + 0xc0]
lea esi, [edi + 0x14c]
mov dword [ebp - 0x48], eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x7c]
mov byte [ebp - 0x44], 1
push ecx
cmp dword [esi + 8], eax
je 0x41ebf1
mov edx, eax
call fcn.004204ef
add dword [esi + 4], 0x3c
pop ecx
jmp 0x41ebf9
push eax
mov ecx, esi
call fcn.00420529
lea ecx, [ebp - 0x7c]
call fcn.0040203f
lea ecx, [ebp - 0x20]
call fcn.0040203f
mov esi, dword [ebp - 0xe4]
mov eax, esi
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], ebx
jb 0x41ec1c
mov eax, dword [esi]
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x94]
push eax
cmp byte [ebp - 0xd5], cl
je 0x41ec39
mov ecx, esi
call fcn.00401f8e
jmp 0x41ec55
lea edx, [edi + 0x40]
lea ecx, [ebp - 0x58]
call fcn.004024fa
pop ecx
push eax
mov ecx, esi
call fcn.004023ff
lea ecx, [ebp - 0x58]
call fcn.0040203f
mov eax, dword [ebp - 0xe0]
cmp byte [eax + 0x94], bl
je 0x41ec70
mov edx, dword [ebp - 0xdc]
mov dword [edx], ebx
jmp 0x41efb4
cmp byte [eax + 0x20], bl
jne 0x41efb2
lea ecx, [ebp - 0xd4]
call fcn.0040d0e0
mov ecx, esi
mov byte [ebp - 0xd6], bl
call fcn.0040efc0
test al, al
je 0x41f1dd
lea edx, [ebp - 0xd4]
mov ecx, esi
call fcn.0040d8c0
test al, al
je 0x41f1dd
cmp dword [edi + 0x30], 1
je 0x41ecba
cmp dword [edi + 0x30], 2
jne 0x41ecfb
cmp dword [edi + 0x38], 1
ja 0x41ecfb
mov ecx, dword [ebp - 0xe0]
xor edx, edx
cmp byte [ecx + 0x92], dl
lea eax, [ecx + 0x7c]
cmovne edx, eax
test edx, edx
je 0x41f1e7
mov eax, dword [ebp - 0xb8]
cmp dword [edx + 4], eax
jb 0x41f1e7
ja 0x41ecfb
mov eax, dword [ebp - 0xbc]
cmp dword [edx], eax
jbe 0x41f1e7
mov eax, dword [edi + 0x38]
mov ecx, eax
sub ecx, ebx
je 0x41ed13
dec ecx
sub ecx, 1
jne 0x41ef93
jmp 0x41f1e7
mov eax, dword [ebp - 0xd4]
xorps xmm0, xmm0
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xb8]
push ecx
lea ecx, [edi + 0x20]
mov dword [ebp - 0xc], eax
mov byte [ebp - 0xd5], bl
movlpd qword [ebp - 0x104], xmm0
call fcn.0040847d
test al, al
je 0x41eda9
lea ecx, [ebp - 0x6c]
call fcn.004153d0
lea ecx, [edi + 0x20]
call fcn.00408412
lea ecx, [ebp - 0x6c]
push ecx
push 7
mov edx, dword [eax]
mov ecx, eax
push dword [ebp + 8]
call dword [edx + 0x1c]
test eax, eax
jne 0x41eda1
mov eax, dword [ebp - 0x6c]
test eax, eax
setne byte [ebp - 0xd5]
test eax, eax
je 0x41eda1
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x100], eax
lea ecx, [ebp - 0x6c]
call fcn.00415440
lea eax, [edi + 0x138]
mov dword [ebp - 0xf4], eax
test eax, eax
je 0x41edc5
cmp dword [eax], ebx
je 0x41edc5
push dword [eax]
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [edi + 0x24]
call fcn.00408412
push dword [ebp - 0xe4]
mov ebx, dword [ebp - 0xe0]
mov edx, eax
xor ecx, ecx
lea eax, [ebp - 0xf8]
cmp byte [ebp - 0xd5], cl
push eax
mov esi, dword [edx]
lea eax, [ebp - 0x104]
cmove eax, ecx
push 1
push eax
mov eax, dword [ebp - 0xe0]
add eax, 0x7c
cmp byte [ebx + 0x92], cl
cmovne ecx, eax
lea eax, [ebp - 0x114]
push ecx
push dword [ebp - 0x108]
mov ecx, edx
push eax
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0xe4]
call dword [esi + 0x18]
push 0
pop ebx
test eax, eax
jne 0x41ee54
mov eax, dword [ebp - 0xf8]
cmp eax, 7
ja case.default.0x41ee3d
jmp dword [eax*4 + 0x41f1ff]
mov eax, 0x80004004
jmp 0x41ee54
mov dword [edi + 0x38], 2
mov eax, ebx
mov edx, dword [ebp - 0xdc]
mov dword [edx], eax
jmp 0x41f1d0
mov dword [edi + 0x38], 1
mov esi, dword [ebp - 0xe4]
jmp 0x41ef85
mov ecx, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xe4]
push esi
lea ecx, [ecx + 0x3c]
call fcn.00401f8e
mov ecx, esi
call fcn.0041c51f
test al, al
jne 0x41eeea
lea eax, [ebp - 0x38]
push 0x271b
push eax
call fcn.00403463
mov ecx, eax
call fcn.0041c0dd
push esi
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0x58]
call fcn.00411f70
pop ecx
lea ecx, [ebp - 0x38]
call fcn.0040203f
lea eax, [ebp - 0x58]
mov ecx, edi
push eax
push dword [ebp + 8]
call fcn.0041ff80
mov edx, dword [ebp - 0xdc]
test eax, eax
mov ecx, 0x80004005
cmovne ecx, eax
mov dword [edx], ecx
lea ecx, [ebp - 0x58]
call fcn.0040203f
jmp 0x41f1d0
mov eax, dword [ebp - 0xe0]
mov byte [eax + 0x54], 1
jmp 0x41ef85
mov dword [edi + 0x38], 3
jmp 0x41ee68
mov esi, dword [ebp - 0xe4]
mov ecx, esi
mov byte [ebp - 0xd6], 1
call fcn.0041c51f
test al, al
jne 0x41ef85
lea eax, [ebp - 0x58]
push 0x271b
push eax
call fcn.00403463
mov ecx, eax
call fcn.0041c0dd
push esi
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0x38]
call fcn.00411f70
pop ecx
lea ecx, [ebp - 0x58]
call fcn.0040203f
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
push dword [ebp + 8]
call fcn.0041ff80
mov edx, dword [ebp - 0xdc]
test eax, eax
mov ecx, 0x80004005
cmovne ecx, eax
mov dword [edx], ecx
lea ecx, [ebp - 0x38]
jmp 0x41eee0
mov esi, dword [ebp - 0xe4]
mov byte [ebp - 0xd6], 1
cmp dword [esi + 0x10], ebx
je case.default.0x41ee3d
lea ecx, [ebp - 0xf4]
call fcn.00403305
mov eax, dword [edi + 0x38]
cmp eax, 3
jne 0x41efdd
mov ecx, esi
call fcn.0041c51f
test al, al
je 0x41f096
lea ecx, [ebp - 0xd4]
call fcn.0040d180
mov bl, 1
lea ecx, [ebp - 0x94]
call fcn.0040203f
lea ecx, [ebp - 0xf0]
call fcn.00401fed
mov ecx, dword [ebp - 8]
mov al, bl
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0043b572
leave
ret 0x14
cmp eax, 4
jne 0x41f077
push esi
lea ecx, [ebp - 0x20]
call fcn.00402436
lea ecx, [ebp - 0x20]
call fcn.0041c51f
test al, al
jne 0x41f002
push 0x271b
jmp 0x41f015
lea edx, [ebp - 0x20]
mov ecx, esi
call fcn.00417920
test al, al
jne 0x41f06a
push 0x271d
lea eax, [ebp - 0x58]
push eax
call fcn.00403463
mov ecx, eax
call fcn.0041c0dd
push esi
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0x38]
call fcn.00411f70
pop ecx
lea ecx, [ebp - 0x58]
call fcn.0040203f
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
push dword [ebp + 8]
call fcn.0041ff80
mov edx, dword [ebp - 0xdc]
test eax, eax
mov ecx, 0x80004005
cmovne ecx, eax
mov dword [edx], ecx
lea ecx, [ebp - 0x38]
call fcn.0040203f
lea ecx, [ebp - 0x20]
jmp 0x41f1bd
lea ecx, [ebp - 0x20]
call fcn.0040203f
jmp 0x41efa7
cmp eax, 1
jne 0x41f0f4
mov ecx, dword [ebp - 0xe0]
push esi
lea ecx, [ecx + 0x3c]
call fcn.00401f8e
mov ecx, esi
call fcn.0041c51f
test al, al
jne 0x41f0e5
lea eax, [ebp - 0x58]
push 0x271b
push eax
call fcn.00403463
mov ecx, eax
call fcn.0041c0dd
push esi
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0x38]
call fcn.00411f70
pop ecx
lea ecx, [ebp - 0x58]
call fcn.0040203f
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
push dword [ebp + 8]
call fcn.0041ff80
mov edx, dword [ebp - 0xdc]
test eax, eax
mov ecx, 0x80004005
cmovne ecx, eax
mov dword [edx], ecx
jmp 0x41f1ba
mov eax, dword [ebp - 0xe0]
mov byte [eax + 0x54], 1
jmp 0x41efa7
cmp byte [ebp - 0xd6], 0
jne 0x41efa7
mov eax, dword [ebp - 0xe0]
cmp byte [eax + 0x54], 0
jne 0x41efa7
mov ecx, esi
call fcn.00417f80
test al, al
jne 0x41efa7
lea eax, [ebp - 0x58]
push 0x271c
push eax
call fcn.00403463
mov ecx, eax
call fcn.0041c0dd
push esi
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0x38]
call fcn.00411f70
pop ecx
lea ecx, [ebp - 0x58]
call fcn.0040203f
lea eax, [ebp - 0x20]
push 0x2790
push eax
call fcn.00403463
mov ecx, eax
call fcn.0041c0dd
cmp dword [ebp - 0xc], 8
lea eax, [ebp - 0x20]
push dword [ebp - 0x10]
cmovae eax, dword [ebp - 0x20]
lea ecx, [ebp - 0x38]
push eax
call fcn.004025c2
lea ecx, [ebp - 0x20]
call fcn.0040203f
lea ecx, [ebp - 0x58]
call fcn.00414660
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x41f190
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
lea ecx, [ebp - 0x38]
call fcn.004025c2
lea ecx, [ebp - 0x58]
call fcn.0040203f
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
push dword [ebp + 8]
call fcn.0041ff80
mov edx, dword [ebp - 0xdc]
mov dword [edx], eax
lea ecx, [ebp - 0x38]
call fcn.0040203f
jmp 0x41f1ef
mov edx, dword [ebp - 0xdc]
mov dword [edx], 0x80004005
lea ecx, [ebp - 0xf4]
call fcn.00403305
jmp 0x41f1ef
cmp dword [edi + 0x30], 2
jne 0x41efa7
mov edx, dword [ebp - 0xdc]
mov dword [edx], ebx
lea ecx, [ebp - 0xd4]
call fcn.0040d180
jmp 0x41efb4