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

Disassembly:
push 0xffffffffffffffff
push 0x48ae08
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
mov eax, dword [0x4ae6e0]
xor eax, esp
mov dword [esp + 0x48], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4ae6e0]
xor eax, esp
push eax
lea eax, [esp + 0x60]
mov dword fs:[0], eax
mov edi, edx
mov eax, ecx
mov dword [esp + 0x18], eax
mov ebx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x24], edx
lea esi, [ebx + 0x20]
cmp eax, edi
je 0x45ca3f
mov ecx, dword [edx + 0xc]
xor ebp, ebp
mov dword [esp + 0x20], ecx
mov ecx, dword [ebx + 8]
mov bh, byte [esp + 0x78]
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x45c59c
lea ecx, [ecx]
mov bl, byte [esi]
mov edx, eax
test bl, bl
jne 0x45c530
mov al, byte [eax]
test bh, bh
je 0x45c512
mov ecx, dword [esp + 0x20]
movzx eax, al
mov ecx, dword [ecx]
mov al, byte [eax + ecx + 0x104]
mov ecx, dword [esp + 0x1c]
test al, al
jne 0x45c58a
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x18]
cmp byte [eax + 0x1c], 0
jne 0x45ca3d
jmp 0x45ca3c
cmp edx, edi
je 0x45c578
mov al, byte [edx]
test bh, bh
je 0x45c54a
mov ecx, dword [esp + 0x20]
movzx eax, al
mov ecx, dword [ecx]
mov al, byte [eax + ecx + 0x104]
cmp al, bl
jne 0x45c578
mov bl, byte [esi + 1]
inc esi
inc edx
test bl, bl
jne 0x45c530
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x18]
cmp byte [eax + 0x1c], 0
jne 0x45ca3d
cmp edx, esi
je 0x45ca3c
mov esi, edx
jmp 0x45ca3d
cmp byte [esi], 0
je 0x45c557
lea ecx, [ecx]
inc esi
cmp byte [esi], 0
jne 0x45c580
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
inc ebp
inc esi
cmp ebp, ecx
jb 0x45c4f0
mov edx, dword [esp + 0x24]
mov bl, byte [eax]
mov edi, dword [esp + 0x20]
mov byte [esp + 0x17], bl
test bh, bh
je 0x45c5ba
mov ecx, dword [edi]
movzx eax, bl
mov bl, byte [eax + ecx + 0x104]
mov byte [esp + 0x17], bl
mov ebp, dword [esp + 0x70]
mov byte [esp + 0x28], bl
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x45c5d2
cmp dword [ebp + 0x10], eax
je 0x45c999
mov dword [esp + 0x40], 0xf
mov dword [esp + 0x3c], 0
mov byte [esp + 0x2c], 0
mov dword [esp + 0x68], 0
test eax, eax
je 0x45c7c7
test dword [edx + 0x14], 0x200000
jne 0x45c614
mov byte [esp + 0x2c], bl
mov ebx, 1
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2d], 0
jmp 0x45c686
lea eax, [esp + 0x1d]
mov byte [esp + 0x1c], bl
push eax
lea eax, [esp + 0x20]
mov byte [esp + 0x21], 0
push eax
lea eax, [esp + 0x4c]
mov ecx, edi
push eax
call fcn.0046d380
mov edi, eax
lea eax, [esp + 0x2c]
cmp eax, edi
je 0x45c66f
cmp dword [esp + 0x40], 0x10
jb 0x45c650
push dword [esp + 0x2c]
call fcn.004251ac
add esp, 4
push edi
lea ecx, [esp + 0x30]
mov dword [esp + 0x44], 0xf
mov dword [esp + 0x40], 0
mov byte [esp + 0x30], 0
call fcn.00402b20
cmp dword [esp + 0x58], 0x10
jb 0x45c682
push dword [esp + 0x44]
call fcn.004251ac
add esp, 4
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x70]
xor ebp, ebp
cmp dword [eax + 0xc], ebp
jbe 0x45c7c5
cmp byte [esi], 0
jne 0x45c6be
test ebx, ebx
je 0x45c705
cmp ebx, 1
jne 0x45c6ba
mov edx, dword [esp + 0x40]
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
cmp edx, 0x10
cmovae eax, ecx
cmp byte [eax], 0
je 0x45c710
xor edi, edi
jmp 0x45c6cc
mov edi, esi
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x45c6c3
sub edi, ecx
cmp dword [esp + 0x40], 0x10
lea ecx, [esp + 0x2c]
mov eax, edi
cmovae ecx, dword [esp + 0x2c]
cmp ebx, edi
cmovb eax, ebx
push eax
push esi
push ecx
call fcn.00403700
add esp, 0xc
test eax, eax
jne 0x45c6ff
cmp ebx, edi
jb 0x45c7a3
cmp ebx, edi
setne al
test eax, eax
js 0x45c7a3
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
lea ecx, [ecx]
inc esi
cmp byte [esi], 0
jne 0x45c710
inc esi
cmp byte [esi], 0
jne 0x45c738
test ebx, ebx
je 0x45c778
cmp ebx, 1
jne 0x45c734
cmp edx, 0x10
lea eax, [esp + 0x2c]
cmovae eax, ecx
cmp byte [eax], 0
je 0x45c778
xor edi, edi
jmp 0x45c749
mov edi, esi
lea ecx, [edi + 1]
lea ecx, [ecx]
mov al, byte [edi]
inc edi
test al, al
jne 0x45c740
sub edi, ecx
cmp edx, 0x10
lea ecx, [esp + 0x2c]
mov eax, edi
cmovae ecx, dword [esp + 0x2c]
cmp ebx, edi
cmovb eax, ebx
push eax
push esi
push ecx
call fcn.00403700
add esp, 0xc
test eax, eax
jne 0x45c776
cmp ebx, edi
jb 0x45c778
cmp ebx, edi
setne al
test eax, eax
jg 0x45c7b0
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x18]
cmp byte [eax + 0x1c], 0
jne 0x45c787
inc esi
cmp dword [esp + 0x40], 0x10
jb 0x45ca3d
push dword [esp + 0x2c]
call fcn.004251ac
add esp, 4
jmp 0x45ca3d
inc esi
cmp byte [esi], 0
jne 0x45c7a3
inc esi
lea ebx, [ebx]
inc esi
cmp byte [esi], 0
jne 0x45c7b0
mov eax, dword [esp + 0x70]
inc ebp
inc esi
cmp ebp, dword [eax + 0xc]
jb 0x45c695
mov ebp, eax
cmp dword [ebp + 0x10], 0
mov bl, byte [esp + 0x17]
je 0x45c986
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x1d]
push eax
lea eax, [esp + 0x20]
mov byte [esp + 0x20], bl
push eax
lea eax, [esp + 0x4c]
mov byte [esp + 0x25], 0
push eax
call fcn.0046d3e0
mov edi, eax
lea eax, [esp + 0x2c]
cmp eax, edi
je 0x45c870
cmp dword [esp + 0x40], 0x10
jb 0x45c813
push dword [esp + 0x2c]
call fcn.004251ac
add esp, 4
mov dword [esp + 0x40], 0xf
mov dword [esp + 0x3c], 0
mov byte [esp + 0x2c], 0
cmp dword [edi + 0x14], 0x10
jae 0x45c845
mov eax, dword [edi + 0x10]
inc eax
je 0x45c851
push eax
lea eax, [esp + 0x30]
push edi
push eax
call fcn.0043c7e0
add esp, 0xc
jmp 0x45c851
mov eax, dword [edi]
mov dword [esp + 0x2c], eax
mov dword [edi], 0
mov eax, dword [edi + 0x10]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 0x40], eax
mov dword [edi + 0x14], 0xf
mov dword [edi + 0x10], 0
mov byte [edi], 0
cmp dword [esp + 0x58], 0x10
jb 0x45c883
push dword [esp + 0x44]
call fcn.004251ac
add esp, 4
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x24], 0
jbe 0x45c986
mov ebp, dword [esp + 0x3c]
lea esp, [esp]
cmp byte [esi], 0
jne 0x45c8cd
test ebp, ebp
je 0x45c778
cmp ebp, 1
jne 0x45c8c9
cmp dword [esp + 0x40], 0x10
lea eax, [esp + 0x2c]
cmovae eax, dword [esp + 0x2c]
cmp byte [eax], 0
je 0x45c778
xor edx, edx
jmp 0x45c8db
mov edx, esi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x45c8d2
sub edx, ecx
cmp dword [esp + 0x40], 0x10
lea edi, [esp + 0x2c]
mov ecx, edx
cmovae edi, dword [esp + 0x2c]
cmp ebp, edx
cmovb ecx, ebp
test ecx, ecx
je 0x45c950
mov ebx, esi
sub ecx, 4
jb 0x45c911
jmp 0x45c900
mov eax, dword [edi]
cmp eax, dword [ebx]
jne 0x45c916
add edi, 4
add ebx, 4
sub ecx, 4
jae 0x45c900
cmp ecx, 0xfffffffc
je 0x45c94a
mov al, byte [edi]
cmp al, byte [ebx]
jne 0x45c943
cmp ecx, 0xfffffffd
je 0x45c94a
mov al, byte [edi + 1]
cmp al, byte [ebx + 1]
jne 0x45c943
cmp ecx, 0xfffffffe
je 0x45c94a
mov al, byte [edi + 2]
cmp al, byte [ebx + 2]
jne 0x45c943
cmp ecx, 0xffffffff
je 0x45c94a
mov al, byte [edi + 3]
cmp al, byte [ebx + 3]
je 0x45c94a
sbb eax, eax
or eax, 1
jmp 0x45c94c
xor eax, eax
test eax, eax
jne 0x45c963
cmp ebp, edx
jb 0x45c963
xor eax, eax
cmp ebp, edx
setne al
test eax, eax
je 0x45c778
inc esi
cmp byte [esi], 0
jne 0x45c963
mov eax, dword [esp + 0x24]
inc esi
mov ecx, dword [esp + 0x70]
inc eax
mov dword [esp + 0x24], eax
cmp eax, dword [ecx + 0x10]
jb 0x45c8a0
mov bl, byte [esp + 0x17]
mov ebp, ecx
cmp dword [esp + 0x40], 0x10
jb 0x45c999
push dword [esp + 0x2c]
call fcn.004251ac
add esp, 4
mov edx, dword [ebp + 0x14]
mov edi, dword [esp + 0x20]
test edx, 0x3ff
je 0x45c9be
mov eax, dword [edi]
movzx ecx, bl
movzx eax, word [eax + ecx*2 + 0x204]
and eax, edx
test eax, 0x3ff
jne 0x45ca12
test edx, 0x400
je 0x45c9cb
cmp bl, 0x5f
je 0x45ca12
test edx, 0x2000
je 0x45c9e7
cmp bl, 0xa
je 0x45ca12
cmp bl, 0xd
je 0x45ca12
cmp bl, 0xc
je 0x45ca12
cmp bl, 0xb
je 0x45ca12
mov esi, dword [esp + 0x28]
test edx, 0x1000
je 0x45ca1e
push 8
push esi
mov ecx, edi
call fcn.004657e0
test al, al
je 0x45ca1e
push 0x2000
push esi
mov ecx, edi
call fcn.004657e0
test al, al
jne 0x45ca1e
cmp byte [ebp + 0x1c], 0
mov esi, dword [esp + 0x18]
jne 0x45ca3d
jmp 0x45ca3c
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x45ca32
push eax
push esi
mov ecx, edi
call fcn.004657e0
test al, al
je 0x45ca12
cmp byte [ebp + 0x1c], 0
mov esi, dword [esp + 0x18]
je 0x45ca3d
inc esi
mov eax, esi
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.0043c12e
add esp, 0x58
ret 0xc