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

Disassembly:
push 0xffffffffffffffff
push 0x4c9908
mov eax, dword fs:[0]
push eax
sub esp, 0x44
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4eadc8]
xor eax, esp
push eax
lea eax, [esp + 0x58]
mov dword fs:[0], eax
mov eax, dword [esp + 0x6c]
movsx ebp, word [eax + 0x97a]
movsx eax, word [eax + 0x97c]
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx + 0x1c8]
mov dword [esp + 0x20], eax
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
add eax, eax
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], eax
mov dword [esp + 0x28], 0
lea ebx, [eax*4 + 0x4c]
add ebp, 0x22
mov dword [esp + 0x30], 5
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 0x1c8]
mov edi, dword [eax + ebx - 0x14]
mov cl, byte [edi + 0x78]
test cl, cl
je 0x45dec7
mov edx, dword [eax + 0x100]
cmp byte [edx + 0x175], cl
mov ecx, dword [esp + 0x20]
mov esi, dword [edi + 0xe8]
sbb eax, eax
add ecx, 0x36
push ecx
inc eax
push ebp
call fcn.0042d610
test eax, eax
je 0x45dec7
mov eax, dword [edi + 0xe8]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx + 0x1c8]
mov edi, dword [eax + ebx]
mov cl, byte [edi + 0x78]
test cl, cl
je 0x45df0c
mov edx, dword [eax + 0x100]
cmp byte [edx + 0x175], cl
mov ecx, dword [esp + 0x20]
mov esi, dword [edi + 0xe8]
sbb eax, eax
add ecx, 0x5f
push ecx
inc eax
push ebp
call fcn.0042d610
test eax, eax
je 0x45df0c
mov eax, dword [edi + 0xe8]
mov dword [esp + 0x28], eax
add ebx, 4
add ebp, 0x29
sub dword [esp + 0x30], 1
jne 0x45de81
mov esi, dword [esp + 0x68]
mov eax, dword [esi + 0x1c8]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x38]
lea edx, [edx + ecx*4]
add edx, ecx
add edx, dword [eax]
mov ebx, dword [eax + edx*4 + 0x38]
mov al, byte [ebx + 0x78]
lea ebp, [ebx + 0x3c]
mov dword [esp + 0x1c], ebx
mov byte [ebx], 0
mov dword [esp + 0x24], ebp
mov byte [ebp], 0
test al, al
je 0x45df99
mov ecx, dword [esi + 0x1c8]
mov edi, dword [ecx + 0x100]
cmp byte [edi + 0x175], al
jae 0x45df99
call fcn.004021e0
push eax
mov edi, 0x4e04f4
call fcn.004021e0
push eax
push ebx
call fcn.0048dc72
movzx edx, byte [ebx + 0x78]
add esp, 0xc
push edx
mov edi, 0x4e0504
call fcn.004021e0
push eax
push ebp
call fcn.0048dc72
add esp, 0xc
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x3c]
add eax, 0x90
add ecx, 0x11
add ebx, 0x7c
mov dword [esp + 0x40], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x2c], 0
mov dword [esp + 0x18], ebx
jmp 0x45dfc6
mov esi, dword [esp + 0x68]
mov edx, dword [esp + 0x18]
mov ebp, dword [edx]
mov al, byte [ebp + 0x175]
test al, al
je 0x45e042
xor edi, edi
mov dword [esp + 0x30], edi
lea ebx, [esi + 0x43a9c]
mov esi, dword [ebx]
test esi, esi
je 0x45e02f
mov ecx, ebp
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x45e010
test dl, dl
je 0x45e00c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x45e010
add eax, 2
add ecx, 2
test dl, dl
jne 0x45dff0
xor eax, eax
jmp 0x45e015
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x45e02f
mov al, byte [ebp + 0x175]
mov dword [esp + 0x30], 1
cmp byte [esi + 0x175], al
jb 0x45e05e
inc edi
add ebx, 4
cmp edi, 0xf0
jl 0x45dfe2
cmp dword [esp + 0x30], 0
je 0x45e0a8
mov eax, dword [esp + 0x2c]
add dword [esp + 0x18], 4
inc eax
cmp eax, 0x14
mov dword [esp + 0x2c], eax
jl 0x45dfc2
jmp 0x45e0e8
mov edi, esi
call fcn.004021e0
push eax
mov edi, 0x4e0480
call fcn.004021e0
mov ecx, dword [esp + 0x20]
push eax
push ecx
call fcn.0048dc72
movzx edx, byte [ebp + 0x175]
movzx eax, byte [esi + 0x175]
add esp, 0xc
push edx
push eax
mov edi, 0x4e0494
call fcn.004021e0
mov ecx, dword [esp + 0x2c]
push eax
push ecx
call fcn.0048dc72
add esp, 0x10
jmp 0x45e042
mov edi, ebp
call fcn.004021e0
push eax
mov edi, 0x4e04ac
call fcn.004021e0
mov edx, dword [esp + 0x20]
push eax
push edx
call fcn.0048dc72
movzx eax, byte [ebp + 0x175]
add esp, 0xc
push eax
mov edi, 0x4e04c4
call fcn.004021e0
mov ecx, dword [esp + 0x28]
push eax
push ecx
call fcn.0048dc72
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
add eax, 0xcc
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], 7
jmp 0x45e110
mov ecx, dword [esp + 0x2c]
mov esi, dword [ecx]
cmp dword [esi + 0x88], 0
je 0x45e2e1
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x18], 0
add ebx, 0x42e58
mov ebp, 0x60
lea ebx, [ebx]
mov edi, dword [ebx]
test edi, edi
je 0x45e190
lea ecx, [esi + 0x18]
lea eax, [edi + 0x18]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x45e170
test dl, dl
je 0x45e16c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x45e170
add eax, 2
add ecx, 2
test dl, dl
jne 0x45e150
xor eax, eax
jmp 0x45e175
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x45e190
movzx eax, word [edi + 0x78]
cmp ax, 2
jb 0x45e18c
movzx edx, ax
add dword [esp + 0x18], edx
jmp 0x45e190
inc dword [esp + 0x18]
add ebx, 4
sub ebp, 1
jne 0x45e140
mov ebx, dword [esp + 0x68]
add ebx, 0x43000
mov ebp, 0xa
mov edi, dword [ebx]
test edi, edi
je 0x45e1f3
lea ecx, [esi + 0x18]
lea eax, [edi + 0x18]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x45e1d3
test dl, dl
je 0x45e1cf
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x45e1d3
add eax, 2
add ecx, 2
test dl, dl
jne 0x45e1b3
xor eax, eax
jmp 0x45e1d8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x45e1f3
movzx eax, word [edi + 0x78]
cmp ax, 2
jb 0x45e1ef
movzx eax, ax
add dword [esp + 0x18], eax
jmp 0x45e1f3
inc dword [esp + 0x18]
add ebx, 4
sub ebp, 1
jne 0x45e1a7
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx + 0x1c8]
mov ebx, dword [edx + 0x10]
imul ebx, dword [esi + 0x88]
mov ebp, dword [esp + 0x18]
cmp ebp, ebx
jl 0x45e21d
mov word [esi + 0x78], bx
jmp 0x45e257
lea eax, [esi + 0x18]
push eax
mov edi, 0x4e04d8
mov word [esi + 0x78], bp
call fcn.004021e0
mov ecx, dword [esp + 0x20]
push eax
push ecx
call fcn.0048dc72
add esp, 0xc
push ebx
push ebp
mov edi, 0x4e04e0
call fcn.004021e0
mov edx, dword [esp + 0x2c]
push eax
push edx
call fcn.0048dc72
add esp, 0x10
movzx eax, word [esi + 0x78]
shl eax, 5
cdq
idiv ebx
movzx ecx, byte [0x4efb84]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x30]
neg ecx
sbb ecx, ecx
push 0xa
and ecx, 0x8000
add ecx, 0x7fff
push ecx
mov ecx, dword [0x4efb90]
mov edx, ebx
push eax
sub edx, eax
push 0x20
add edx, 0x20
push edx
push ebp
call fcn.0047a5d0
movzx eax, word [esi + 0x78]
cmp eax, dword [esi + 0x88]
jge 0x45e2ad
xor eax, eax
lea edi, [eax + 1]
jmp 0x45e2b4
mov eax, 1
xor edi, edi
lea ecx, [ebx + 0x10]
push ecx
lea edx, [ebp + 0x10]
push edx
call fcn.0042d610
test eax, eax
je 0x45e2c9
mov dword [esp + 0x28], esi
movzx eax, word [esi + 0x78]
push 4
push eax
add ebx, 0x14
push ebx
lea ecx, [ebp + 0x26]
mov eax, edi
call fcn.004706a0
add esp, 0xc
add dword [esp + 0x2c], 4
add dword [esp + 0x30], 0x29
sub dword [esp + 0x34], 1
jne 0x45e110
mov ecx, dword [0x6391d8]
mov edx, dword [0x4efb90]
push ecx
push edx
lea ecx, [esp + 0x4c]
call fcn.00489780
push 0x141414
push 0xc8c8c8
lea ecx, [esp + 0x4c]
mov dword [esp + 0x68], 0
call fcn.00483ce0
mov eax, dword [esp + 0x68]
mov edi, dword [eax + 0x1c8]
add edi, 0x14
call fcn.004021e0
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x38]
push eax
lea ecx, [esi + 0x10]
push ecx
push edi
lea ecx, [esp + 0x50]
call fcn.00487220
mov edx, dword [esp + 0x1c]
push edx
lea eax, [esi + 0xbc]
push eax
push edi
lea ecx, [esp + 0x50]
call fcn.00487220
mov ecx, dword [esp + 0x24]
push ecx
add esi, 0xce
push esi
push edi
lea ecx, [esp + 0x50]
call fcn.00487220
lea ecx, [esp + 0x44]
mov dword [esp + 0x60], 0xffffffff
call fcn.004897b0
mov edi, dword [esp + 0x6c]
call fcn.00450230
cmp eax, 1
je 0x45e3a1
cmp eax, 2
jne 0x45e405
cmp eax, 0x40
jge 0x45e405
mov eax, dword [edi + eax*4 + 0xa0c]
test eax, eax
je 0x45e405
cmp byte [eax + 0x14], 0
movsx ecx, word [edi + 0x97c]
movsx edx, word [edi + 0x97a]
je 0x45e405
mov esi, dword [eax + 4]
test esi, esi
je 0x45e3e8
push esi
movsx esi, word [eax + 0xe]
movsx eax, word [eax + 0xc]
add esi, ecx
mov ecx, dword [0x4efb90]
push esi
add eax, edx
push eax
call fcn.0047d6a0
jmp 0x45e405
mov esi, dword [eax + 8]
push esi
movsx esi, word [eax + 0xe]
add esi, ecx
movsx ecx, word [eax + 0xc]
add ecx, edx
push esi
push ecx
mov ecx, dword [0x4efb90]
call fcn.0047bee0
mov ebx, edi
mov esi, dword [ebx + 0xa18]
mov edi, dword [esp + 0x68]
test esi, esi
je 0x45e48d
mov edx, dword [edi + 0x1c8]
mov ecx, dword [edx + 0x10]
movsx ebp, word [ebx + 0x97c]
lea ecx, [ecx + ecx*4]
shl ecx, 5
mov eax, 0xa57eb503
imul ecx
add edx, ecx
movsx ecx, word [ebx + 0x97a]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ecx
cmp byte [esi + 0x14], 0
je 0x45e48d
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x45e470
movsx edx, word [esi + 0xe]
push ecx
movsx ecx, word [esi + 0xc]
add edx, ebp
add ecx, eax
push edx
push ecx
mov ecx, dword [0x4efb90]
call fcn.0047d6a0
jmp 0x45e48d
mov edx, dword [esi + 8]
movsx ecx, word [esi + 0xe]
push edx
movsx edx, word [esi + 0xc]
add ecx, ebp
push ecx
mov ecx, dword [0x4efb90]
add edx, eax
push edx
call fcn.0047bee0
mov eax, dword [edi + 0x1c8]
mov ecx, dword [eax + 8]
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x3c]
inc ecx
push 2
push ecx
lea edx, [ebx + 0x32]
push edx
lea ecx, [esi + 0x113]
xor eax, eax
call fcn.004706a0
mov eax, dword [edi + 0x1c8]
mov ecx, dword [eax + 0x10]
push 2
push ecx
lea edx, [ebx + 0x7a]
push edx
lea ecx, [esi + 0x128]
xor eax, eax
call fcn.004706a0
movzx ecx, byte [0x4efb84]
mov eax, dword [edi + 0x1c8]
mov edx, dword [eax + 4]
add esp, 0x18
neg ecx
sbb ecx, ecx
imul edx, edx, 0x29
and ecx, 0x6720
add ecx, 0x6739
push ecx
lea ecx, [edx + ebx + 0x24]
mov edx, dword [eax]
imul edx, edx, 0x29
push 0x23
push 0x23
push ecx
mov ecx, dword [0x4efb90]
lea eax, [edx + esi + 0xf]
push eax
call fcn.0047a560
mov eax, dword [esp + 0x28]
test eax, eax
je 0x45e52b
add eax, 0x18
push eax
mov ecx, edi
call fcn.004421b0
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0x58]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret 8