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

Disassembly:
push 0xffffffffffffffff
push 0x461710
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x7c
mov eax, dword [ecx + 8]
push ebx
push ebp
push esi
push edi
lea edi, [ecx + 8]
mov esi, edx
mov edx, dword [edi + 8]
sub eax, edx
cmp eax, 0x10c
mov dword [esp + 0x10], ecx
jae 0x45b574
sub edx, dword [edi + 4]
add edx, 0x10c
mov ecx, edi
call fcn.00459dd0
mov ebp, dword [edi + 8]
lea ecx, [ebp + 0x10c]
mov dword [edi + 8], ecx
xor eax, eax
mov ecx, 0x43
mov edi, ebp
mov dword [esp + 0x18], ebp
rep stosd dword es:[edi], eax
xor ebx, ebx
mov eax, dword [esi + 0x1c0]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
cmp ecx, edx
jne 0x45b5c5
mov edi, dword [eax]
cmp edi, ebx
je 0x45b640
cmp ecx, edx
jne 0x45b5c5
mov ecx, dword [esi + 0x1c4]
mov edx, edi
mov dword [esi + 0x1c0], edx
mov dword [eax], ecx
mov dword [esi + 0x1c4], eax
mov edx, dword [esi + 0x1c0]
mov eax, dword [edx + 8]
cmp dword [eax + 0x18], 0x10
jb 0x45b5d9
mov eax, dword [eax + 4]
jmp 0x45b5dc
add eax, 4
movzx eax, byte [eax]
mov byte [eax + ebp + 0xc], 3
mov eax, dword [esi + 0x1c0]
mov ecx, dword [eax + 4]
cmp ecx, dword [eax + 8]
jne 0x45b608
mov edx, dword [eax]
mov ecx, dword [esi + 0x1c4]
mov dword [esi + 0x1c0], edx
mov dword [eax], ecx
mov dword [esi + 0x1c4], eax
mov edx, dword [esi + 0x1c0]
mov edi, dword [edx + 8]
cmp dword [edi + 0x18], 0x10
jb 0x45b623
mov eax, dword [edi + 4]
push eax
call fcn.0044b92d
add esp, 4
mov dword [edi + 0x18], 0xf
mov dword [edi + 0x14], ebx
mov byte [edi + 4], 0
mov eax, dword [esi + 0x1c0]
add dword [eax + 8], 0x1c
jmp 0x45b591
mov edi, dword [esp + 0x9c]
mov eax, dword [edi + 0x1c0]
mov edx, dword [eax + 4]
cmp edx, dword [eax + 8]
mov ebp, dword [esp + 0x10]
mov ecx, 0xf
jne 0x45b666
cmp dword [eax], ebx
je 0x45bb45
mov dword [esp + 0x88], ecx
mov dword [esp + 0x84], ebx
mov byte [esp + 0x74], 0
mov dword [esp + 0x94], ebx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], 0
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], 0
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], 0
mov ecx, dword [ebp]
mov edx, dword [eax + 8]
test ch, 0x40
mov ecx, dword [eax + 4]
mov byte [esp + 0x94], 3
jne 0x45b6ef
cmp ecx, edx
jne 0x45b6d7
mov edx, dword [eax]
mov ecx, dword [edi + 0x1c4]
mov dword [edi + 0x1c0], edx
mov dword [eax], ecx
mov dword [edi + 0x1c4], eax
mov edx, dword [edi + 0x1c0]
mov eax, dword [edx + 8]
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x7c]
call fcn.004022a0
jmp 0x45b71b
cmp ecx, edx
jne 0x45b709
mov edx, dword [eax]
mov ecx, dword [edi + 0x1c4]
mov dword [edi + 0x1c0], edx
mov dword [eax], ecx
mov dword [edi + 0x1c4], eax
mov edx, dword [edi + 0x1c0]
mov edx, dword [edx + 8]
lea ecx, [esp + 0x70]
call fcn.00458a60
mov eax, dword [edi + 0x1c0]
mov ecx, dword [eax + 4]
cmp ecx, dword [eax + 8]
jne 0x45b73f
mov edx, dword [eax]
mov ecx, dword [edi + 0x1c4]
mov dword [edi + 0x1c0], edx
mov dword [eax], ecx
mov dword [edi + 0x1c4], eax
mov edx, dword [edi + 0x1c0]
mov esi, dword [edx + 8]
cmp dword [esi + 0x18], 0x10
jb 0x45b75a
mov eax, dword [esi + 4]
push eax
call fcn.0044b92d
add esp, 4
mov dword [esi + 0x18], 0xf
mov dword [esi + 0x14], ebx
mov byte [esi + 4], 0
mov eax, dword [edi + 0x1c0]
add dword [eax + 8], 0x1c
mov eax, dword [ebp]
test ah, 0x40
mov eax, dword [edi + 0x1c0]
mov edx, dword [eax + 8]
mov ecx, dword [eax + 4]
jne 0x45b7b8
cmp ecx, edx
jne 0x45b7a0
mov edx, dword [eax]
mov ecx, dword [edi + 0x1c4]
mov dword [edi + 0x1c0], edx
mov dword [eax], ecx
mov dword [edi + 0x1c4], eax
mov edx, dword [edi + 0x1c0]
mov eax, dword [edx + 8]
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x44]
call fcn.004022a0
jmp 0x45b7e4
cmp ecx, edx
jne 0x45b7d2
mov edx, dword [eax]
mov ecx, dword [edi + 0x1c4]
mov dword [edi + 0x1c0], edx
mov dword [eax], ecx
mov dword [edi + 0x1c4], eax
mov edx, dword [edi + 0x1c0]
mov edx, dword [edx + 8]
lea ecx, [esp + 0x38]
call fcn.00458a60
mov eax, dword [edi + 0x1c0]
mov ecx, dword [eax + 4]
cmp ecx, dword [eax + 8]
jne 0x45b808
mov edx, dword [eax]
mov ecx, dword [edi + 0x1c4]
mov dword [edi + 0x1c0], edx
mov dword [eax], ecx
mov dword [edi + 0x1c4], eax
mov edx, dword [edi + 0x1c0]
mov esi, dword [edx + 8]
mov eax, dword [esi + 0x18]
mov ebp, 0x10
cmp eax, ebp
jb 0x45b829
mov eax, dword [esi + 4]
push eax
call fcn.0044b92d
add esp, 4
mov dword [esi + 0x18], 0xf
mov dword [esi + 0x14], ebx
mov byte [esi + 4], 0
mov eax, dword [edi + 0x1c0]
add dword [eax + 8], 0x1c
cmp dword [esp + 0x50], ebp
mov edi, dword [esp + 0x3c]
jae 0x45b84f
lea edi, [esp + 0x3c]
mov edx, dword [esp + 0x84]
cmp edx, ebx
mov ebp, dword [esp + 0x4c]
je 0x45b887
cmp edx, ebp
mov ecx, edx
jb 0x45b866
mov ecx, ebp
cmp dword [esp + 0x88], 0x10
mov esi, dword [esp + 0x74]
jae 0x45b878
lea esi, [esp + 0x74]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x45b883
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x45b898
cmp edx, ebp
jb 0x45ba92
xor eax, eax
cmp edx, ebp
setne al
cmp eax, ebx
jl 0x45ba92
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x34]
mov edi, 1
cmp eax, edi
jae 0x45b8be
mov eax, dword [esp + 0x30]
push eax
push edi
lea ecx, [esp + 0x24]
call fcn.00401d70
mov eax, dword [esp + 0x34]
mov esi, 0x10
cmp eax, esi
mov eax, dword [esp + 0x20]
jae 0x45b8d3
lea eax, [esp + 0x20]
movsx ecx, byte [esp + 0x14]
mov byte [eax], cl
cmp dword [esp + 0x34], esi
mov eax, dword [esp + 0x20]
mov ch, cl
mov dword [esp + 0x30], edi
jae 0x45b8ee
lea eax, [esp + 0x20]
mov byte [eax + 1], 0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
test ch, 0x40
jne 0x45b911
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x60]
call fcn.004022a0
jmp 0x45b91e
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x54]
call fcn.00458a60
mov ebx, dword [esp + 0x6c]
cmp ebx, 0x10
mov edi, dword [esp + 0x58]
jae 0x45b92f
lea edi, [esp + 0x58]
mov edx, dword [esp + 0x84]
test edx, edx
mov ebp, dword [esp + 0x68]
je 0x45b967
cmp edx, ebp
mov ecx, edx
jb 0x45b946
mov ecx, ebp
cmp dword [esp + 0x88], 0x10
mov esi, dword [esp + 0x74]
jae 0x45b958
lea esi, [esp + 0x74]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x45b963
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x45b974
cmp edx, ebp
jb 0x45b9d3
xor eax, eax
cmp edx, ebp
setne al
test eax, eax
jl 0x45b9d3
cmp dword [esp + 0x50], 0x10
mov edi, dword [esp + 0x3c]
jae 0x45b985
lea edi, [esp + 0x3c]
cmp ebp, ebp
mov edx, ebp
jae 0x45b98b
test edx, edx
mov ebp, dword [esp + 0x4c]
je 0x45b9b7
cmp edx, ebp
mov ecx, edx
jb 0x45b99b
mov ecx, ebp
cmp ebx, 0x10
mov esi, dword [esp + 0x58]
jae 0x45b9a8
lea esi, [esp + 0x58]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x45b9b3
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x45b9c4
cmp edx, ebp
jb 0x45b9d3
xor eax, eax
cmp edx, ebp
setne al
test eax, eax
jl 0x45b9d3
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov byte [edx + eax + 0xc], 3
mov eax, dword [esp + 0x14]
inc eax
cmp eax, 0x100
mov dword [esp + 0x14], eax
jb 0x45b8a2
mov eax, dword [esp + 0x34]
mov ebp, 0x10
cmp eax, ebp
jb 0x45ba05
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0044b92d
mov ebx, dword [esp + 0x70]
add esp, 4
xor edi, edi
cmp ebx, ebp
mov esi, 0xf
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], edi
mov byte [esp + 0x20], 0
jb 0x45ba2a
mov edx, dword [esp + 0x58]
push edx
call fcn.0044b92d
add esp, 4
cmp dword [esp + 0x50], ebp
mov dword [esp + 0x6c], esi
mov dword [esp + 0x68], edi
mov byte [esp + 0x58], 0
jb 0x45ba4a
mov eax, dword [esp + 0x3c]
push eax
call fcn.0044b92d
add esp, 4
cmp dword [esp + 0x88], ebp
mov dword [esp + 0x50], esi
mov dword [esp + 0x4c], edi
mov byte [esp + 0x3c], 0
mov dword [esp + 0x94], 0xffffffff
jb 0x45ba78
mov ecx, dword [esp + 0x74]
push ecx
call fcn.0044b92d
add esp, 4
mov dword [esp + 0x88], esi
mov dword [esp + 0x84], edi
mov byte [esp + 0x74], 0
xor ebx, ebx
jmp 0x45b640
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
or edx, 0x800
mov ecx, edx
test ch, 4
mov dword [eax + 0x38], 0xb
mov dword [eax], edx
je 0x45babc
add eax, 4
push 0xb
push eax
call fcn.0044b540
add esp, 8
mov eax, dword [esp + 0x34]
mov edi, 0x10
cmp eax, edi
jb 0x45bad6
mov edx, dword [esp + 0x20]
push edx
call fcn.0044b92d
add esp, 4
cmp dword [esp + 0x6c], edi
mov esi, 0xf
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], 0
jb 0x45bafb
mov eax, dword [esp + 0x58]
push eax
call fcn.0044b92d
add esp, 4
cmp dword [esp + 0x50], edi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], 0
jb 0x45bb1b
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.0044b92d
add esp, 4
cmp dword [esp + 0x88], edi
mov dword [esp + 0x50], esi
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], 0
jb 0x45bb3e
mov edx, dword [esp + 0x74]
push edx
call fcn.0044b92d
add esp, 4
xor eax, eax
jmp 0x45be33
mov ebx, dword [esp + 0xa4]
mov eax, dword [ebx + 0x1c0]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
xor edi, edi
cmp ecx, edx
mov ebp, 4
jne 0x45bb6b
cmp dword [eax], edi
je 0x45bd66
mov eax, 0xf
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], edi
mov byte [esp + 0x58], 0
mov dword [esp + 0x94], ebp
mov dword [esp + 0x88], eax
mov dword [esp + 0x84], edi
mov byte [esp + 0x74], 0
mov byte [esp + 0x94], 5
mov dword [esp + 0x14], edi
cmp dword [esp + 0x88], 1
jae 0x45bbc0
mov edx, dword [esp + 0x84]
push edx
push 1
lea ecx, [esp + 0x78]
call fcn.00401d70
cmp dword [esp + 0x88], 0x10
mov eax, dword [esp + 0x74]
jae 0x45bbd2
lea eax, [esp + 0x74]
movsx ecx, byte [esp + 0x14]
mov byte [eax], cl
mov eax, dword [esp + 0x88]
mov esi, 0x10
cmp eax, esi
mov eax, dword [esp + 0x74]
mov ch, cl
mov dword [esp + 0x84], 1
jae 0x45bbfe
lea eax, [esp + 0x74]
lea edx, [esp + 0x70]
lea ecx, [esp + 0x54]
mov byte [eax + 1], 0
call fcn.00458b60
mov eax, dword [ebx + 0x1c0]
mov ecx, dword [eax + 4]
cmp ecx, dword [eax + 8]
jne 0x45bc33
mov edx, dword [eax]
mov ecx, dword [ebx + 0x1c4]
mov dword [ebx + 0x1c0], edx
mov dword [eax], ecx
mov dword [ebx + 0x1c4], eax
mov edx, dword [ebx + 0x1c0]
mov eax, dword [edx + 8]
cmp dword [eax + 0x18], esi
mov ebp, dword [eax + 0x14]
jb 0x45bc49
mov eax, dword [eax + 4]
jmp 0x45bc4c
add eax, 4
mov edx, dword [esp + 0x68]
test edx, edx
je 0x45bc7c
cmp edx, ebp
mov ecx, edx
jb 0x45bc5c
mov ecx, ebp
cmp dword [esp + 0x6c], 0x10
mov esi, dword [esp + 0x58]
jae 0x45bc6b
lea esi, [esp + 0x58]
mov edi, eax
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x45bc78
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x45bc98
cmp edx, ebp
jb 0x45bc98
xor eax, eax
cmp edx, ebp
setne al
test eax, eax
jne 0x45bc98
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov byte [eax + ecx + 0xc], 3
mov eax, dword [esp + 0x14]
inc eax
cmp eax, 0x100
mov dword [esp + 0x14], eax
jb 0x45bba3
mov eax, dword [ebx + 0x1c0]
mov edx, dword [eax + 4]
cmp edx, dword [eax + 8]
jne 0x45bcd0
mov ecx, dword [eax]
mov edx, dword [ebx + 0x1c4]
mov dword [ebx + 0x1c0], ecx
mov dword [eax], edx
mov dword [ebx + 0x1c4], eax
mov eax, dword [ebx + 0x1c0]
mov esi, dword [eax + 8]
cmp dword [esi + 0x18], 0x10
jb 0x45bceb
mov eax, dword [esi + 4]
push eax
call fcn.0044b92d
add esp, 4
xor ebp, ebp
mov dword [esi + 0x14], ebp
mov edi, 0xf
mov dword [esi + 0x18], edi
mov byte [esi + 4], 0
mov eax, dword [ebx + 0x1c0]
add dword [eax + 8], 0x1c
mov eax, dword [esp + 0x88]
mov esi, 0x10
cmp eax, esi
jb 0x45bd23
mov ecx, dword [esp + 0x74]
push ecx
call fcn.0044b92d
add esp, 4
cmp dword [esp + 0x6c], esi
mov dword [esp + 0x88], edi
mov dword [esp + 0x84], ebp
mov byte [esp + 0x74], 0
mov dword [esp + 0x94], 0xffffffff
jb 0x45bd54
mov edx, dword [esp + 0x58]
push edx
call fcn.0044b92d
add esp, 4
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], ebp
mov byte [esp + 0x58], 0
jmp 0x45bb4c
mov eax, dword [esp + 0xa0]
lea ecx, [ecx]
mov ecx, dword [eax + 0x40]
mov edx, dword [ecx + 4]
mov esi, dword [ecx + 8]
cmp edx, esi
jne 0x45bd94
mov ebx, dword [ecx]
test ebx, ebx
je 0x45bdba
cmp edx, esi
jne 0x45bd94
mov edx, ebx
mov dword [eax + 0x40], edx
mov edx, dword [eax + 0x44]
mov dword [ecx], edx
mov dword [eax + 0x44], ecx
mov ecx, dword [eax + 0x40]
mov edx, dword [ecx + 8]
mov ebx, dword [edx]
mov esi, dword [ecx + 4]
or edi, ebx
cmp esi, edx
jne 0x45bdb2
mov edx, dword [ecx]
mov dword [eax + 0x40], edx
mov edx, dword [eax + 0x44]
mov dword [ecx], edx
mov dword [eax + 0x44], ecx
mov ecx, dword [eax + 0x40]
add dword [ecx + 8], ebp
jmp 0x45bd70
test edi, edi
mov esi, dword [esp + 0x18]
je 0x45be05
mov ebp, dword [esp + 0x10]
xor ecx, ecx
jmp 0x45bdd0
movzx eax, cl
movzx edx, word [eax*2 + 0x475420]
test edi, edx
je 0x45bdfc
mov edx, dword [ebp]
shr edx, 0xd
test dl, 1
je 0x45bdf2
mov al, byte [eax + 0x475220]
jmp 0x45bdf4
mov al, cl
movzx eax, al
mov byte [eax + esi + 0xc], 3
inc ecx
cmp ecx, 0x100
jb 0x45bdd0
mov al, byte [esp + 0xa8]
test al, al
je 0x45be24
lea eax, [esi + 0xc]
mov ecx, 0x100
cmp byte [eax], 0
sete dl
mov byte [eax], dl
inc eax
dec ecx
jne 0x45be18
mov dword [esi], 0xf
mov dword [esi + 4], 0
mov eax, esi
mov ecx, dword [esp + 0x8c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x88
ret 0x14