Function at 0x41d084
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.00420539
mov edx, dword [ebp - 0xec]
cmp dword [ebp - 0xf0], edx
jne 0x41d0f7
mov eax, 0x80004005
jmp 0x41d1ca
mov eax, dword [edi + 0x34]
mov ecx, ebx
mov dword [ebp - 0x100], ecx
sub eax, 1
je 0x41d1d1
dec eax
sub eax, 1
jne 0x41d1e2
mov edx, dword [edi + 0x80]
mov eax, dword [edi + 0x84]
cmp edx, eax
je 0x41d1af
sub eax, edx
push 0x18
cdq
pop esi
idiv esi
sub eax, 1
mov dword [ebp - 0xf8], eax
js 0x41d1e2
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.00420539
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0xf0]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.0041ebd6
lea ecx, [ebp - 0x14]
mov esi, eax
call fcn.00401fed
test esi, esi
je 0x41d1a7
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 0x41d149
mov ecx, dword [ebp - 0x100]
jmp 0x41d1e2
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0xf0]
push eax
lea eax, [edi + 0x74]
push eax
call fcn.0041ebd6
test eax, eax
je 0x41d1a7
mov dword [esi], eax
jmp 0x41d978
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.0041b92f
pop ecx
lea ecx, [ebp - 0xf0]
call fcn.004201a1
lea edx, [ebp - 0xf0]
lea ecx, [ebp - 0x94]
call fcn.004204b9
cmp dword [edi + 0x34], 2
mov byte [ebp - 0xd5], bl
jne 0x41d2e7
cmp dword [ebp - 0x84], 1
jbe 0x41d2e7
cmp dword [ebp - 0x80], 8
lea eax, [ebp - 0x94]
cmovae eax, dword [ebp - 0x94]
cmp word [eax + 2], 0x5f
jne 0x41d2e7
cmp dword [ebp - 0x84], 2
jne 0x41d25d
mov eax, dword [ebp - 0xe0]
cmp byte [eax + 0x94], bl
jne 0x41d28d
cmp dword [ebp - 0x80], 8
lea eax, [ebp - 0x94]
cmovae eax, dword [ebp - 0x94]
cmp word [eax + 4], 0x5c
je 0x41d28d
cmp dword [ebp - 0x80], 8
lea eax, [ebp - 0x94]
cmovae eax, dword [ebp - 0x94]
cmp word [eax + 4], 0x2f
jne 0x41d2e7
push 1
push ebx
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x94]
call fcn.004030ed
push 0x3a
pop esi
push esi
lea ecx, [ebp - 0x38]
call fcn.00403157
lea ecx, [ebp - 0x38]
call fcn.0040efc0
test al, al
je 0x41d2d3
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 0x41d37e
cmp byte [edi + 0x3d], bl
je 0x41d37e
lea eax, [edi + 0xa4]
push eax
lea ecx, [ebp - 0x20]
call fcn.0040241c
cmp dword [ebp - 0x10], ebx
jne 0x41d313
lea eax, [edi + 0x8c]
push eax
lea ecx, [ebp - 0x20]
call fcn.00401f8e
cmp byte [edi + 0xf1], bl
je 0x41d32d
mov ecx, dword [ebp - 0xf0]
lea edx, [ebp - 0x20]
call fcn.00403287
test al, al
jne 0x41d349
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0xf0]
lea eax, [ebp - 0xf4]
push eax
lea ecx, [ebp - 0xf0]
call fcn.0041f125
lea ecx, [ebp - 0xf0]
call fcn.004201a1
lea edx, [ebp - 0xf0]
lea ecx, [ebp - 0x58]
call fcn.004204b9
push eax
lea ecx, [ebp - 0x94]
call fcn.004023e5
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 0x41d3ba
mov eax, dword [ebp - 0xec]
mov dl, bl
cmp dword [ebp - 0xf0], eax
je 0x41d3ba
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 0x41d3cc
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 0x41d5c2
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 0x41d43b
test dl, dl
je 0x41d413
lea eax, [ebp - 0x94]
push eax
lea ecx, [ebp - 0x20]
call fcn.00401f8e
jmp 0x41d421
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0x94]
call fcn.0040dd80
lea ecx, [ebp - 0x20]
call fcn.0040f220
test al, al
jne 0x41d437
lea ecx, [ebp - 0x20]
call fcn.00410e30
jmp 0x41d44d
mov al, 1
jmp 0x41d454
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
lea eax, [ebp - 0xf0]
push eax
call fcn.0041c42f
mov byte [ebp - 0xd6], 1
test al, al
jne 0x41d4a6
lea ecx, [ebp - 0x58]
call fcn.00414370
mov ecx, eax
cmp dword [ecx + 0x14], 8
jb 0x41d46a
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.00403306
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.0041e939
lea ecx, [ebp - 0x38]
call fcn.0040203f
cmp byte [ebp - 0xd5], bl
jne 0x41d4bb
cmp byte [esi + 0x94], bl
jne 0x41d4d5
jmp 0x41d5ba
mov al, byte [esi + 0x94]
cmp byte [ebp - 0xd6], bl
je 0x41d5ba
test al, al
je 0x41d5ba
cmp byte [edi + 0x70], bl
jne 0x41d4e8
cmp byte [edi + 0x71], bl
jne 0x41d4e8
cmp byte [edi + 0x72], bl
je 0x41d5ba
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 0x41d53c
cmp byte [esi + 0x90], bl
je 0x41d53c
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 0x41d559
cmp byte [esi + 0x91], bl
je 0x41d559
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 0x41d574
cmp byte [esi + 0x92], bl
je 0x41d574
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x4c], eax
mov eax, dword [esi + 0x80]
jmp 0x41d583
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 0x41d5aa
mov edx, eax
call fcn.0041eea6
add dword [esi + 4], 0x3c
pop ecx
jmp 0x41d5b2
push eax
mov ecx, esi
call fcn.0041eee0
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 0x41d5d5
mov eax, dword [esi]
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x94]
push eax
cmp byte [ebp - 0xd5], cl
je 0x41d5f2
mov ecx, esi
call fcn.00401f8e
jmp 0x41d60e
lea edx, [edi + 0x40]
lea ecx, [ebp - 0x58]
call fcn.004024e0
pop ecx
push eax
mov ecx, esi
call fcn.004023e5
lea ecx, [ebp - 0x58]
call fcn.0040203f
mov eax, dword [ebp - 0xe0]
cmp byte [eax + 0x94], bl
je 0x41d629
mov edx, dword [ebp - 0xdc]
mov dword [edx], ebx
jmp 0x41d96d
cmp byte [eax + 0x20], bl
jne 0x41d96b
lea ecx, [ebp - 0xd4]
call fcn.0040d0d0
mov ecx, esi
mov byte [ebp - 0xd6], bl
call fcn.0040efc0
test al, al
je 0x41db96
lea edx, [ebp - 0xd4]
mov ecx, esi
call fcn.0040d8b0
test al, al
je 0x41db96
cmp dword [edi + 0x30], 1
je 0x41d673
cmp dword [edi + 0x30], 2
jne 0x41d6b4
cmp dword [edi + 0x38], 1
ja 0x41d6b4
mov ecx, dword [ebp - 0xe0]
xor edx, edx
cmp byte [ecx + 0x92], dl
lea eax, [ecx + 0x7c]
cmovne edx, eax
test edx, edx
je 0x41dba0
mov eax, dword [ebp - 0xb8]
cmp dword [edx + 4], eax
jb 0x41dba0
ja 0x41d6b4
mov eax, dword [ebp - 0xbc]
cmp dword [edx], eax
jbe 0x41dba0
mov eax, dword [edi + 0x38]
mov ecx, eax
sub ecx, ebx
je 0x41d6cc
dec ecx
sub ecx, 1
jne 0x41d94c
jmp 0x41dba0
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.0040846d
test al, al
je 0x41d762
lea ecx, [ebp - 0x6c]
call fcn.004150e0
lea ecx, [edi + 0x20]
call fcn.00408402
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 0x41d75a
mov eax, dword [ebp - 0x6c]
test eax, eax
setne byte [ebp - 0xd5]
test eax, eax
je 0x41d75a
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.00415150
lea eax, [edi + 0x138]
mov dword [ebp - 0xf4], eax
test eax, eax
je 0x41d77e
cmp dword [eax], ebx
je 0x41d77e
push dword [eax]
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [edi + 0x24]
call fcn.00408402
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 0x41d80d
mov eax, dword [ebp - 0xf8]
cmp eax, 7
ja case.default.0x41d7f6
jmp dword [eax*4 + 0x41dbb8]
mov eax, 0x80004004
jmp 0x41d80d
mov dword [edi + 0x38], 2
mov eax, ebx
mov edx, dword [ebp - 0xdc]
mov dword [edx], eax
jmp 0x41db89
mov dword [edi + 0x38], 1
mov esi, dword [ebp - 0xe4]
jmp 0x41d93e
mov ecx, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xe4]
push esi
lea ecx, [ecx + 0x3c]
call fcn.00401f8e
mov ecx, esi
call fcn.0041ae96
test al, al
jne 0x41d8a3
lea eax, [ebp - 0x38]
push 0x271b
push eax
call fcn.00403449
mov ecx, eax
call fcn.0041aa54
push esi
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0x58]
call fcn.0041a720
pop ecx
lea ecx, [ebp - 0x38]
call fcn.0040203f
lea eax, [ebp - 0x58]
mov ecx, edi
push eax
push dword [ebp + 8]
call fcn.0041e939
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 0x41db89
mov eax, dword [ebp - 0xe0]
mov byte [eax + 0x54], 1
jmp 0x41d93e
mov dword [edi + 0x38], 3
jmp 0x41d821
mov esi, dword [ebp - 0xe4]
mov ecx, esi
mov byte [ebp - 0xd6], 1
call fcn.0041ae96
test al, al
jne 0x41d93e
lea eax, [ebp - 0x58]
push 0x271b
push eax
call fcn.00403449
mov ecx, eax
call fcn.0041aa54
push esi
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0x38]
call fcn.0041a720
pop ecx
lea ecx, [ebp - 0x58]
call fcn.0040203f
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
push dword [ebp + 8]
call fcn.0041e939
mov edx, dword [ebp - 0xdc]
test eax, eax
mov ecx, 0x80004005
cmovne ecx, eax
mov dword [edx], ecx
lea ecx, [ebp - 0x38]
jmp 0x41d899
mov esi, dword [ebp - 0xe4]
mov byte [ebp - 0xd6], 1
cmp dword [esi + 0x10], ebx
je case.default.0x41d7f6
lea ecx, [ebp - 0xf4]
call fcn.004032eb
mov eax, dword [edi + 0x38]
cmp eax, 3
jne 0x41d996
mov ecx, esi
call fcn.0041ae96
test al, al
je 0x41da4f
lea ecx, [ebp - 0xd4]
call fcn.0040d170
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.0043af96
leave
ret 0x14
cmp eax, 4
jne 0x41da30
push esi
lea ecx, [ebp - 0x20]
call fcn.0040241c
lea ecx, [ebp - 0x20]
call fcn.0041ae96
test al, al
jne 0x41d9bb
push 0x271b
jmp 0x41d9ce
lea edx, [ebp - 0x20]
mov ecx, esi
call fcn.00417630
test al, al
jne 0x41da23
push 0x271d
lea eax, [ebp - 0x58]
push eax
call fcn.00403449
mov ecx, eax
call fcn.0041aa54
push esi
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0x38]
call fcn.0041a720
pop ecx
lea ecx, [ebp - 0x58]
call fcn.0040203f
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
push dword [ebp + 8]
call fcn.0041e939
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 0x41db76
lea ecx, [ebp - 0x20]
call fcn.0040203f
jmp 0x41d960
cmp eax, 1
jne 0x41daad
mov ecx, dword [ebp - 0xe0]
push esi
lea ecx, [ecx + 0x3c]
call fcn.00401f8e
mov ecx, esi
call fcn.0041ae96
test al, al
jne 0x41da9e
lea eax, [ebp - 0x58]
push 0x271b
push eax
call fcn.00403449
mov ecx, eax
call fcn.0041aa54
push esi
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0x38]
call fcn.0041a720
pop ecx
lea ecx, [ebp - 0x58]
call fcn.0040203f
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
push dword [ebp + 8]
call fcn.0041e939
mov edx, dword [ebp - 0xdc]
test eax, eax
mov ecx, 0x80004005
cmovne ecx, eax
mov dword [edx], ecx
jmp 0x41db73
mov eax, dword [ebp - 0xe0]
mov byte [eax + 0x54], 1
jmp 0x41d960
cmp byte [ebp - 0xd6], 0
jne 0x41d960
mov eax, dword [ebp - 0xe0]
cmp byte [eax + 0x54], 0
jne 0x41d960
mov ecx, esi
call fcn.00417c90
test al, al
jne 0x41d960
lea eax, [ebp - 0x58]
push 0x271c
push eax
call fcn.00403449
mov ecx, eax
call fcn.0041aa54
push esi
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0x38]
call fcn.0041a720
pop ecx
lea ecx, [ebp - 0x58]
call fcn.0040203f
lea eax, [ebp - 0x20]
push 0x2790
push eax
call fcn.00403449
mov ecx, eax
call fcn.0041aa54
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.004025a8
lea ecx, [ebp - 0x20]
call fcn.0040203f
lea ecx, [ebp - 0x58]
call fcn.00414370
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x41db49
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
lea ecx, [ebp - 0x38]
call fcn.004025a8
lea ecx, [ebp - 0x58]
call fcn.0040203f
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
push dword [ebp + 8]
call fcn.0041e939
mov edx, dword [ebp - 0xdc]
mov dword [edx], eax
lea ecx, [ebp - 0x38]
call fcn.0040203f
jmp 0x41dba8
mov edx, dword [ebp - 0xdc]
mov dword [edx], 0x80004005
lea ecx, [ebp - 0xf4]
call fcn.004032eb
jmp 0x41dba8
cmp dword [edi + 0x30], 2
jne 0x41d960
mov edx, dword [ebp - 0xdc]
mov dword [edx], ebx
lea ecx, [ebp - 0xd4]
call fcn.0040d170
jmp 0x41d96d