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

Disassembly:
sub esp, 0x130
mov ecx, dword [esp + 0x138]
mov edx, dword [esp + 0x14c]
or eax, 0xffffffff
push ebx
mov ebx, dword [esp + 0x148]
push ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x148]
push esi
mov esi, dword [esp + 0x140]
lea ebp, [ecx + eax]
push edi
xor edi, edi
lea eax, [ebp - 1]
mov dword [esp + 0x28], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x38], eax
test ebx, 0xe20f5a6f
je 0x41bdd4
lea eax, [edi - 3]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x130
ret
cmp esi, edi
je 0x41c8ac
cmp ecx, edi
je 0x41c8ac
cmp dword [esp + 0x158], edi
jne 0x41bdf5
cmp edx, edi
jg 0x41c8ac
cmp edx, edi
jge 0x41be09
mov eax, 0xfffffff1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x130
ret
movzx eax, word [esi + 0x1a]
movzx ecx, word [esi + 0x18]
movzx edx, word [esi + 0x1c]
mov dword [esp + 0x6c], eax
mov eax, 0x989680
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x20]
add ecx, esi
mov dword [esp + 0x70], ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0xdc], edi
mov dword [esp + 0x10], eax
cmp eax, edi
jne 0x41be4a
mov dword [esp + 0x10], 0x486098
cmp dword [esi], 0x50435245
je 0x41be82
lea ecx, [esp + 0x114]
push ecx
push edi
lea edx, [esp + 0xf4]
push edx
push esi
call fcn.0040ed7c
mov esi, eax
add esp, 0x10
cmp esi, edi
jne 0x41be82
mov eax, 0xfffffffc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x130
ret
mov eax, dword [esi + 8]
movzx edx, word [esi + 0x1c]
movzx ecx, al
shr eax, 0x12
and eax, 1
mov dword [esp + 0x30], eax
movzx eax, word [esi + 0x1a]
imul edx, eax
movzx eax, word [esi + 0x18]
add edx, dword [esp + 0x144]
movzx edi, bl
add eax, edx
mov edx, dword [esp + 0x14c]
or edi, ecx
movzx ecx, byte [esi + 0xc]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x148]
mov dword [esp + 0xac], eax
add eax, edx
mov dword [esp + 0xb0], eax
mov dword [esp + 0x44], eax
shr ecx, 3
and ecx, 1
mov dword [esp + 0xe0], ecx
mov ecx, dword [esp + 0x150]
mov dword [esp + 0xcc], ecx
movzx eax, byte [esi + 8]
shr eax, 5
and eax, 1
mov dword [esp + 0x94], eax
mov ecx, dword [esi + 8]
shr ecx, 0xb
and ecx, 1
mov dword [esp + 0x8c], ecx
mov eax, dword [esi + 8]
shr eax, 0x19
and eax, 1
mov dword [esp + 0x90], eax
shr edi, 4
and edi, 1
mov eax, 0
test bl, 0x80
setne al
mov dword [esp + 0xe8], edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x84], eax
mov eax, ebx
shr eax, 8
and eax, 1
mov dword [esp + 0x88], eax
mov eax, ebx
shr eax, 0xa
and eax, 1
mov dword [esp + 0x98], eax
mov eax, ebx
shr eax, 0x1c
and eax, 1
mov dword [esp + 0x9c], eax
test ebx, 0x8000000
je 0x41bf87
mov eax, 2
jmp 0x41bf8f
mov eax, ebx
shr eax, 0xf
and eax, 1
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x78], eax
add eax, 0x340
mov dword [esp + 0x7c], eax
xor edx, edx
mov eax, ebx
and eax, 0x1800000
mov dword [esp + 0xa0], edx
mov dword [esp + 0xd8], edx
je 0x41bfeb
cmp eax, 0x800000
je 0x41bfde
cmp eax, 0x1000000
je 0x41c004
mov eax, 0xffffffe9
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x130
ret
mov dword [esp + 0xa4], 1
jmp 0x41c00b
mov eax, dword [esi + 8]
test eax, 0x1800000
je 0x41c004
shr eax, 0x17
and eax, 1
mov dword [esp + 0xa4], eax
jmp 0x41c00b
mov dword [esp + 0xa4], edx
test ebx, 0x700000
jne 0x41c018
mov eax, dword [esi + 8]
jmp 0x41c01a
mov eax, ebx
and eax, 0x700000
cmp eax, 0x300000
ja 0x41c071
je 0x41c06a
cmp eax, edx
je 0x41c03a
cmp eax, 0x100000
je 0x41c063
cmp eax, 0x200000
jne 0x41bfce
mov eax, 0xa
cmp eax, 0xff
mov dword [esp + 0x60], edx
jle 0x41c097
mov edx, eax
sar edx, 8
mov byte [esp + 0x74], dl
mov dword [esp + 0x64], 2
mov byte [esp + 0x75], al
xor edx, edx
jmp 0x41c0a3
mov eax, 0xd
jmp 0x41c03f
mov eax, 0xd0a
jmp 0x41c03f
cmp eax, 0x400000
je 0x41c08d
cmp eax, 0x500000
jne 0x41bfce
mov dword [esp + 0x60], 2
jmp 0x41c0a3
mov dword [esp + 0x60], 1
jmp 0x41c0a3
mov dword [esp + 0x64], 1
mov byte [esp + 0x74], al
cmp dword [esp + 0xc0], edx
je 0x41c0c2
test byte [esi + 0xc], 1
je 0x41c0c2
mov eax, 0xfffffff3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x130
ret
cmp ecx, edx
je 0x41c135
test ebx, 0x2000
jne 0x41c135
mov eax, dword [esp + 0x14c]
mov ecx, dword [esp + 0x148]
push eax
push ecx
call fcn.00407582
add esp, 8
test eax, eax
jl 0x41c0fa
mov eax, 0xfffffff6
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x130
ret
mov eax, dword [esp + 0x150]
test eax, eax
jle 0x41c135
cmp eax, dword [esp + 0x14c]
jge 0x41c135
movzx eax, byte [ebp]
cmp eax, 0x7f
jle 0x41c135
and eax, 0xc0
je 0x41c135
cmp eax, 0xc0
je 0x41c135
mov eax, 0xfffffff5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x130
ret
mov eax, dword [esi + 8]
and eax, 7
mov dword [esp + 0xe4], eax
mov eax, 0x55555556
imul dword [esp + 0x15c]
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*2]
movzx eax, word [esi + 0x12]
mov dword [esp + 0x18], edx
test ax, ax
jbe 0x41c1b5
movzx ecx, ax
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jl 0x41c1b5
lea eax, [ecx + ecx*2 + 3]
lea ecx, [eax*4]
push ecx
mov dword [esp + 0x1c], eax
call dword [0x491670]
add esp, 4
mov dword [esp + 0x54], eax
test eax, eax
jne 0x41c1ab
mov eax, 0xfffffffa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x130
ret
mov dword [esp + 0x28], 1
jmp 0x41c1c0
mov edx, dword [esp + 0x158]
mov dword [esp + 0x54], edx
mov ecx, dword [esp + 0x18]
lea edx, [ecx + ecx]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x80], 0
mov dword [esp + 0xc8], 0xffffffff
movzx eax, word [esi + 0x10]
lea eax, [eax + eax + 2]
cmp eax, dword [esp + 0x15c]
mov dword [esp + 0x18], eax
jle 0x41c20e
mov eax, ecx
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x54]
test edx, edx
je 0x41c243
lea ecx, [edx + ecx*4]
cdq
sub eax, edx
sar eax, 1
mov edx, 1
sub edx, eax
lea eax, [ecx + edx*4]
sub ecx, 4
cmp ecx, eax
jb 0x41c243
lea esp, [esp]
mov dword [ecx], 0xffffffff
sub ecx, 4
cmp ecx, eax
jae 0x41c236
test edi, edi
jne 0x41c277
test byte [esi + 0xc], 2
je 0x41c277
movzx eax, word [esi + 0x14]
movzx ecx, al
mov dword [esp + 0x1c], ecx
test eax, 0x100
je 0x41c336
mov eax, dword [esp + 0x78]
movzx ecx, byte [eax + ecx]
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], ecx
test byte [esi + 0xc], 4
je 0x41c2a2
movzx eax, word [esi + 0x16]
mov edx, dword [esp + 0x10]
movzx ecx, al
shr eax, 8
and eax, 1
mov dword [esp + 0x3c], eax
movzx eax, byte [edx + ecx + 0x100]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], eax
and ebx, 0x4000000
mov dword [esp + 0x40], ebx
jmp 0x41c2b6
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x10], ebx
test edi, edi
je 0x41c2dd
mov ecx, dword [esp + 0x18]
lea ecx, [edi + ecx*4]
cmp edi, ecx
jae 0x41c2dd
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
cmp dword [esp + 0x30], 0
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x64]
je 0x41c3d6
cmp dword [esp + 0x14], 0
mov edi, ebp
je 0x41c37b
cmp ebp, eax
jae 0x41c3d4
mov edx, dword [esp + 0x60]
test edx, edx
je 0x41c343
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esp + 0x68]
push ecx
push eax
push edx
push edi
call fcn.0040780a
mov ecx, dword [esp + 0x78]
add esp, 0x14
test eax, eax
jne 0x41c3d4
mov eax, dword [esp + 0xb0]
jmp 0x41c361
mov dword [esp + 0x20], 0
jmp 0x41c277
mov edx, eax
sub edx, ecx
cmp edi, edx
ja 0x41c361
mov dl, byte [edi]
cmp dl, byte [esp + 0x74]
jne 0x41c361
cmp ecx, 1
je 0x41c3d4
mov dl, byte [edi + 1]
cmp dl, byte [esp + 0x75]
je 0x41c3d4
inc edi
cmp edi, ebx
jae 0x41c375
mov dl, byte [edi]
and dl, 0xc0
cmp dl, 0x80
jne 0x41c375
inc edi
cmp edi, ebx
jb 0x41c366
cmp edi, eax
jb 0x41c304
jmp 0x41c3d4
cmp ebp, eax
jae 0x41c3d4
lea esp, [esp]
mov edx, dword [esp + 0x60]
test edx, edx
je 0x41c3b1
push 0
lea ecx, [esp + 0x68]
push ecx
push eax
push edx
push edi
call fcn.0040780a
mov ecx, dword [esp + 0x78]
add esp, 0x14
test eax, eax
jne 0x41c3d4
mov eax, dword [esp + 0xb0]
jmp 0x41c3cf
mov edx, eax
sub edx, ecx
cmp edi, edx
ja 0x41c3cf
mov dl, byte [esp + 0x74]
cmp byte [edi], dl
jne 0x41c3cf
cmp ecx, 1
je 0x41c3d4
mov dl, byte [esp + 0x75]
cmp byte [edi + 1], dl
je 0x41c3d4
inc edi
cmp edi, eax
jb 0x41c386
mov ebx, edi
cmp dword [esp + 0x40], 0
mov edi, dword [esp + 0x1c]
jne 0x41c576
test edi, edi
jl 0x41c43c
cmp dword [esp + 0x20], 0
je 0x41c416
cmp ebp, ebx
jae 0x41c576
movzx eax, byte [ebp]
mov ecx, dword [esp + 0x78]
movzx edx, byte [eax + ecx]
cmp edx, edi
je 0x41c576
inc ebp
cmp ebp, ebx
jb 0x41c3f8
jmp 0x41c576
cmp ebp, ebx
jae 0x41c576
jmp 0x41c426
movzx eax, byte [ebp]
cmp eax, edi
je 0x41c576
inc ebp
cmp ebp, ebx
jb 0x41c426
jmp 0x41c576
cmp dword [esp + 0xe0], 0
je 0x41c576
mov edx, dword [esp + 0x150]
mov eax, dword [esp + 0xac]
add edx, eax
cmp ebp, edx
jbe 0x41c576
cmp dword [esp + 0x14], 0
je 0x41c4ed
cmp ebp, ebx
jae 0x41c54b
jmp 0x41c47e
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0x60]
test edx, edx
je 0x41c4ad
cmp ebp, eax
jbe 0x41c4d2
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esp + 0x68]
push ecx
push eax
push edx
push ebp
call fcn.004076b9
add esp, 0x14
test eax, eax
jne 0x41c54b
mov ecx, dword [esp + 0x64]
jmp 0x41c4d2
lea edx, [ecx + eax]
cmp ebp, edx
jb 0x41c4d2
mov eax, ebp
sub eax, ecx
mov dl, byte [eax]
cmp dl, byte [esp + 0x74]
jne 0x41c4d2
cmp ecx, 1
je 0x41c54b
mov dl, byte [esp + 0x75]
cmp byte [eax + 1], dl
je 0x41c54b
inc ebp
cmp ebp, ebx
jae 0x41c54b
mov al, byte [ebp]
and al, 0xc0
cmp al, 0x80
jne 0x41c4e7
inc ebp
cmp ebp, ebx
jb 0x41c4d7
jmp 0x41c54b
cmp ebp, ebx
jb 0x41c477
jmp 0x41c54b
cmp ebp, ebx
jae 0x41c54b
jmp 0x41c4fd
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0x60]
test edx, edx
je 0x41c525
cmp ebp, eax
jbe 0x41c546
push 0
lea ecx, [esp + 0x68]
push ecx
push eax
push edx
push ebp
call fcn.004076b9
add esp, 0x14
test eax, eax
jne 0x41c54b
mov ecx, dword [esp + 0x64]
jmp 0x41c546
lea edx, [ecx + eax]
cmp ebp, edx
jb 0x41c546
mov eax, ebp
sub eax, ecx
mov dl, byte [eax]
cmp dl, byte [esp + 0x74]
jne 0x41c546
cmp ecx, 1
je 0x41c54b
mov dl, byte [esp + 0x75]
cmp byte [eax + 1], dl
je 0x41c54b
inc ebp
cmp ebp, ebx
jb 0x41c4f6
cmp byte [ebp - 1], 0xd
jne 0x41c576
mov eax, dword [esp + 0x60]
cmp eax, 1
je 0x41c55f
cmp eax, 2
jne 0x41c576
cmp ebp, ebx
jae 0x41c576
cmp byte [ebp], 0xa
jne 0x41c576
inc ebp
jmp 0x41c576
cmp dword [esp + 0x40], 0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], eax
jne 0x41c62e
cmp dword [esp + 0xc0], 0
jne 0x41c62e
mov edx, dword [esp + 0x2c]
test edx, edx
jl 0x41c62e
mov ebx, eax
sub eax, ebp
cmp eax, 0x3e8
jge 0x41c62e
xor eax, eax
test edi, edi
setge al
add eax, ebp
cmp eax, dword [esp + 0x38]
jbe 0x41c62e
cmp dword [esp + 0x3c], 0
je 0x41c613
cmp eax, ebx
jae 0x41c5de
movzx ecx, byte [eax]
inc eax
cmp ecx, edx
je 0x41c625
cmp ecx, dword [esp + 0x34]
je 0x41c625
cmp eax, ebx
jb 0x41c5cc
xor ebx, ebx
cmp dword [esp + 0x28], 0
je 0x41c5f5
mov edx, dword [esp + 0x54]
push edx
call dword [0x491674]
add esp, 4
test ebx, ebx
je 0x41c861
cmp ebx, 0xfffffff4
je 0x41c861
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x130
ret
cmp eax, ebx
jae 0x41c5de
movzx ecx, byte [eax]
inc eax
cmp ecx, edx
je 0x41c625
cmp eax, ebx
jb 0x41c617
jmp 0x41c5de
dec eax
cmp eax, ebx
jae 0x41c5de
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0xe4]
mov ecx, dword [esp + 0xa8]
push 0
push 0
push 0
push edx
lea eax, [esp + 0x58]
push eax
push 2
push ebp
push ecx
push ebp
mov dword [esp + 0xd8], ebp
mov dword [esp + 0xe0], ebp
mov dword [esp + 0x6c], 0
call fcn.0040ee99
add esp, 0x24
cmp dword [esp + 0xa0], 0
mov ebx, eax
je 0x41c689
cmp dword [esp + 0x24], 0
jne 0x41c689
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x24], edx
test ebx, ebx
jg 0x41c7a4
je 0x41c6b2
lea eax, [ebx + 0x3e7]
cmp eax, 3
ja 0x41c7a4
jmp dword [eax*4 + 0x4470be]
cmp dword [esp + 0x14], 0
lea edi, [ebp + 1]
je 0x41c6d5
mov eax, dword [esp + 0x10]
cmp edi, eax
jae 0x41c6d5
mov edi, edi
mov cl, byte [edi]
and cl, 0xc0
cmp cl, 0x80
jne 0x41c6d5
inc edi
cmp edi, eax
jb 0x41c6c6
mov ecx, dword [esp + 0x60]
xor ebx, ebx
cmp dword [esp + 0x30], ebx
je 0x41c743
test ecx, ecx
je 0x41c713
mov eax, dword [esp + 0xb0]
cmp ebp, eax
jae 0x41c743
mov edx, dword [esp + 0x14]
push edx
lea edx, [esp + 0x68]
push edx
push eax
push ecx
push ebp
call fcn.0040780a
add esp, 0x14
test eax, eax
jne 0x41c5e0
mov ecx, dword [esp + 0x60]
jmp 0x41c743
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0x64]
sub edx, eax
cmp ebp, edx
ja 0x41c743
mov dl, byte [esp + 0x74]
cmp byte [ebp], dl
jne 0x41c743
cmp eax, 1
je 0x41c5e0
mov al, byte [esp + 0x75]
cmp byte [ebp + 1], al
je 0x41c5e0
cmp dword [esp + 0xe8], 0
mov ebp, edi
jne 0x41c5e0
mov eax, dword [esp + 0x10]
cmp edi, eax
ja 0x41c5e0
cmp byte [edi - 1], 0xd
jne 0x41c2b6
cmp edi, eax
jae 0x41c2b6
cmp byte [edi], 0xa
jne 0x41c2b6
test byte [esi + 0xc], 0x20
jne 0x41c2b6
cmp ecx, 1
je 0x41c79c
mov eax, 2
cmp ecx, eax
je 0x41c79c
cmp dword [esp + 0x64], eax
jne 0x41c2b6
lea ebp, [edi + 1]
jmp 0x41c2b6
cmp ebx, 1
jne 0x41c5e0
cmp dword [esp + 0x28], 0
mov esi, dword [esp + 0x15c]
je 0x41c805
cmp esi, 4
jl 0x41c7e3
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x158]
lea ecx, [esi*4 - 8]
push ecx
add edx, 8
push edx
add eax, 8
push eax
call 0x3e6770
add esp, 0xc
cmp dword [esp + 0xc4], esi
jle 0x41c7f7
mov dword [esp + 0x80], 1
mov ecx, dword [esp + 0x54]
push ecx
call dword [0x491674]
add esp, 4
cmp dword [esp + 0x80], 0
je 0x41c813
xor eax, eax
jmp 0x41c81f
mov eax, dword [esp + 0xc4]
cdq
sub eax, edx
sar eax, 1
cmp esi, 2
jge 0x41c831
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x130
ret
mov ecx, dword [esp + 0xac]
mov esi, dword [esp + 0xb4]
mov edx, dword [esp + 0x158]
sub esi, ecx
mov dword [edx], esi
mov esi, dword [esp + 0xb8]
sub esi, ecx
mov dword [edx + 4], esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x130
ret
mov eax, dword [esp + 0x24]
test eax, eax
je 0x41c89e
cmp dword [esp + 0x15c], 1
jle 0x41c88e
mov edx, dword [esp + 0x148]
mov ecx, dword [esp + 0x158]
sub eax, edx
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
sub eax, edx
mov dword [ecx + 4], eax
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x130
ret
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x130
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x130
ret