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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x46ed64
mov eax, dword fs:[0]
push eax
sub esp, 0x1c4
push ebx
push ebp
push esi
push edi
mov eax, dword [0x490018]
xor eax, esp
push eax
lea eax, [esp + 0x1d8]
mov dword fs:[0], eax
mov ebp, ecx
mov eax, dword [ebp]
mov edx, dword [eax + 0x1c]
call edx
mov ecx, eax
not ecx
test cl, 1
jne 0x452133
cmp eax, 0x101
je 0x452133
xor ebx, ebx
mov ecx, vtable.Common::Variant::ObjectBase.0
mov eax, vtable.Common::Variant::Property.0
mov dword [esp + 0x34], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], vtable.Common::ModuleObject.0
mov dword [esp + 0x48], eax
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], vtable.Common::Helper::ArchiveInfo.0
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x3c], vtable.Common::Format::Object.0
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], vtable.Common::Helper::FormatInfo.0
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x1e0], ebx
mov esi, dword [ebp + 8]
cmp esi, ebx
je 0x451898
cmp dword [esp + 0x38], ebx
je 0x451883
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0x10]
lea ecx, [esp + 0x34]
call eax
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0x18]
lea ecx, [esp + 0x34]
call eax
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x38], ebx
lea ecx, [esp + 0x34]
mov dword [esp + 0x38], esi
call eax
mov ecx, dword [ebp + 0x20]
lea eax, [ebp + 0xc]
push eax
lea eax, [esp + 0x40]
mov dword [esp + 0x54], ecx
call fcn.004207e0
mov eax, dword [ebp + 0x74]
mov edx, dword [ebp + 0x38]
mov ecx, dword [ebp + 0x34]
mov dword [esp + 0x58], eax
lea eax, [esp + 0x7c]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], ecx
call fcn.0044eea0
mov byte [esp + 0x1e0], 1
mov edx, dword [esp + 0x7c]
mov ecx, eax
mov eax, dword [edx + 8]
call eax
or eax, 0xffffffff
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], eax
xor eax, eax
lea ecx, [esp + 0x34]
push ecx
lea edi, [esp + 0x88]
mov dword [esp + 0x11c], ebx
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x158], ebx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
call fcn.00422780
cmp dword [esp + 0x44], ebx
je 0x451983
cmp dword [esp + 0x38], ebx
je 0x451983
cmp dword [esp + 0x5c], ebx
je 0x451983
mov eax, 1
jmp 0x451985
xor eax, eax
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x118], eax
mov eax, dword [edx + 4]
lea ecx, [esp + 0x7c]
call eax
test al, 1
je 0x4519ab
mov esi, 1
cmp dword [esp + 0x118], ebx
jne 0x4519ad
mov esi, eax
mov ecx, esi
not ecx
mov dword [esp + 0x18], esi
test cl, 1
je 0x451a1a
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp + 0x6c]
cmp ecx, ebx
je 0x4519d1
push edx
mov edx, dword [eax + 0x30]
push edx
call ecx
add esp, 8
mov eax, dword [ebp]
mov edx, dword [eax + 0x24]
mov ecx, ebp
call edx
lea ecx, [esp + 0x7c]
mov byte [esp + 0x1e0], 0
call fcn.0044ee30
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x1e4], 0xffffffff
call fcn.00421120
mov eax, esi
mov ecx, dword [esp + 0x1d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x24]
lea edi, [ebp + 0x44]
push ecx
mov ecx, edi
call fcn.004494a0
lea esi, [ebp + 0x4c]
mov byte [esp + 0x1e0], 2
call fcn.00420830
lea ecx, [esp + 0x24]
mov byte [esp + 0x1e0], 1
call fcn.00460ce0
mov esi, dword [esi + 4]
cmp esi, ebx
je 0x451a56
lea eax, [esi - 8]
jmp 0x451a58
xor eax, eax
mov ecx, dword [eax + 0x18]
sub ecx, dword [eax + 0x14]
sar ecx, 2
mov dword [esp + 0x64], ecx
mov ecx, edi
call fcn.004496d0
mov ecx, edi
mov esi, eax
call fcn.004499c0
or eax, edx
mov ecx, edi
je 0x451a82
call fcn.004499c0
jmp 0x451a87
call fcn.00449900
mov edi, eax
mov dword [esp + 0x28], edx
mov edx, edi
or edx, dword [esp + 0x28]
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [ebp + 0x5c], ebx
mov dword [esp + 0x68], ebx
je 0x451ad8
mov eax, dword [ebp + 0x28]
cmp dword [eax], esi
je 0x451ad8
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ecx]
mov ecx, dword [ebp + 0x20]
call fcn.00443bf0
mov edx, dword [ebp + 0x28]
mov dword [edx], esi
mov eax, dword [ebp + 0x28]
mov ecx, dword [eax]
mov edx, dword [ebp + 0x2c]
push 1
push ecx
mov ecx, dword [ebp + 0x20]
call fcn.00443c40
mov esi, eax
jmp 0x451adc
mov esi, dword [esp + 0x18]
mov edx, esi
not edx
test dl, 1
je 0x451b07
cmp dword [esp + 0x118], ebx
je 0x451afb
mov eax, dword [esp + 0x7c]
mov edx, dword [eax + 0x14]
lea ecx, [esp + 0x7c]
call edx
mov eax, ebp
call fcn.0044ffc0
jmp 0x4519d1
mov ecx, dword [esp + 0x28]
mov edx, dword [ebp + 0x6c]
push ecx
mov ecx, dword [ebp + 0x24]
push edi
push edx
call fcn.00443af0
mov ebx, eax
not eax
test al, 1
je 0x451b48
cmp ebx, 0x100
je 0x451b48
lea ecx, [esp + 0x7c]
call fcn.0044e7a0
mov eax, ebp
call fcn.0044ffc0
mov edx, dword [ebp]
mov eax, dword [edx + 0x24]
mov ecx, ebp
call eax
jmp 0x45210b
mov edx, dword [esp + 0x64]
cmp dword [ebp + 0x5c], edx
jae 0x4520db
mov eax, dword [ebp + 0x5c]
push eax
lea ecx, [esp + 0x78]
xor ebx, ebx
push ecx
lea edx, [ebp + 0x4c]
mov dword [esp + 0x74], ebx
mov dword [esp + 0x38], ebx
call fcn.00460da0
mov byte [esp + 0x1e0], 3
mov edi, dword [eax + 4]
cmp edi, ebx
je 0x451ba5
cmp dword [ebp + 0x58], ebx
lea esi, [ebp + 0x54]
je 0x451b99
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
mov ecx, esi
mov dword [esi + 4], edi
call eax
lea ecx, [esp + 0x74]
mov byte [esp + 0x1e0], 1
call fcn.00460ac0
mov edx, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x5c]
mov eax, dword [ebp + 0x60]
mov edx, dword [edx]
cmp dword [esp + 0x118], ebx
jne 0x451bd1
mov edi, 0xe00
jmp 0x451c0a
cmp eax, 0xffffffff
jne 0x451bdd
mov edi, 0x200
jmp 0x451c0a
push ecx
push eax
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x118], ecx
push edx
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x88]
mov dword [esp + 0x164], ebx
call edx
mov edi, eax
mov eax, edi
not eax
mov dword [esp + 0x18], edi
test al, 1
jne 0x451e06
cmp edi, 1
jne 0x451d7b
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ecx]
xor ebx, ebx
cmp dword [esp + 0x118], ebx
jne 0x451c3a
mov edi, 0xe00
jmp 0x451c61
push 0
lea edx, [esp + 0x6c]
push edx
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x78]
push edx
push eax
mov eax, dword [esp + 0x90]
mov edx, dword [eax + 0x10]
lea ecx, [esp + 0x90]
call edx
mov edi, eax
mov eax, edi
not eax
mov dword [esp + 0x18], edi
test al, 1
jne 0x451e5f
cmp edi, 0x2000001
jne 0x451ca0
mov eax, dword [ebp + 0x28]
inc dword [eax]
mov ecx, dword [ebp + 0x28]
mov eax, dword [ecx]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov edx, dword [edx + 0x4c]
push eax
mov eax, dword [ebp + 0x14]
push eax
call edx
mov dword [esp + 0x18], eax
not eax
test al, 1
jne 0x451ed6
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x30]
mov edi, dword [ebp + 0x6c]
mov esi, edx
test ecx, ecx
je 0x451cf1
mov eax, dword [eax + 0x30]
lea ebx, [esp + 0x70]
push ebx
push edx
mov edx, dword [esp + 0x74]
push edx
push edi
push eax
mov dword [esp + 0x84], 0
call ecx
mov ecx, dword [esp + 0x84]
add esp, 0x14
test al, 1
je 0x451ce7
cmp esi, ecx
je 0x451ce7
mov eax, 0x1000900
mov edx, dword [esp + 0x30]
mov ebx, ecx
mov edi, eax
jmp 0x451cf6
mov edi, 0x400
mov esi, dword [esp + 0x1c]
mov ecx, edi
not ecx
test cl, 1
jne 0x451f4f
cmp edx, ebx
jne 0x451fc6
lea ecx, [ebp + 0x44]
call fcn.004499c0
or eax, edx
je 0x451d1f
add esi, ebx
jmp 0x451d23
add esi, dword [esp + 0x68]
adc dword [esp + 0x20], 0
mov dword [esp + 0x1c], esi
cmp esi, dword [esp + 0x24]
jne 0x451d3c
mov edx, dword [esp + 0x20]
cmp edx, dword [esp + 0x28]
je 0x451d70
mov ecx, dword [ebp + 0x34]
test ecx, ecx
je 0x451d5e
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x24]
push edx
push eax
push esi
push 1
call fcn.0045b200
mov edi, eax
jmp 0x451d63
mov edi, 1
mov ecx, edi
not ecx
test cl, 1
jne 0x452040
cmp dword [esp + 0x18], 1
je 0x451c23
cmp dword [esp + 0x118], 0
je 0x451d92
mov edx, dword [esp + 0x7c]
mov eax, dword [edx + 0x14]
lea ecx, [esp + 0x7c]
call eax
mov edx, 1
add dword [ebp + 0x5c], edx
push 0x26
lea ecx, [ebp + 4]
call fcn.00423940
test eax, eax
je 0x451df4
push 4
xor edx, edx
lea ecx, [ebp + 0x54]
call fcn.00423940
cmp eax, dword [esp + 0x154]
je 0x451df4
lea esi, [ebp + 0x44]
push 0x21
xor edx, edx
mov ecx, esi
call fcn.00423940
cmp eax, 2
je 0x451df4
push 0x21
xor edx, edx
mov ecx, esi
call fcn.00423940
cmp eax, 3
je 0x451df4
push 0x21
xor edx, edx
mov ecx, esi
call fcn.00423940
cmp eax, 4
jne 0x4520b7
mov ecx, dword [esp + 0x64]
cmp dword [ebp + 0x5c], ecx
jb 0x451b55
jmp 0x4520d7
lea ecx, [esp + 0x7c]
call fcn.0044e7a0
mov eax, ebp
call fcn.0044ffc0
mov edx, dword [ebp]
mov eax, dword [edx + 0x24]
mov ecx, ebp
call eax
lea ecx, [esp + 0x7c]
mov byte [esp + 0x1e0], 0
call fcn.0044ee30
lea ecx, [esp + 0x34]
push ecx
mov dword [esp + 0x1e4], 0xffffffff
call fcn.00421120
mov eax, edi
mov ecx, dword [esp + 0x1d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x118], 0
je 0x451e76
mov edx, dword [esp + 0x7c]
mov eax, dword [edx + 0x14]
lea ecx, [esp + 0x7c]
call eax
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp + 0x6c]
test ecx, ecx
je 0x451e8d
push edx
mov edx, dword [eax + 0x30]
push edx
call ecx
add esp, 8
mov eax, dword [ebp]
mov edx, dword [eax + 0x24]
mov ecx, ebp
call edx
lea ecx, [esp + 0x7c]
mov byte [esp + 0x1e0], 0
call fcn.0044ee30
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x1e4], 0xffffffff
call fcn.00421120
mov eax, edi
mov ecx, dword [esp + 0x1d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x118], 0
je 0x451eed
mov edx, dword [esp + 0x7c]
mov eax, dword [edx + 0x14]
lea ecx, [esp + 0x7c]
call eax
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp + 0x6c]
test ecx, ecx
je 0x451f04
push edx
mov edx, dword [eax + 0x30]
push edx
call ecx
add esp, 8
mov eax, dword [ebp]
mov edx, dword [eax + 0x24]
mov ecx, ebp
call edx
lea ecx, [esp + 0x7c]
mov byte [esp + 0x1e0], 0
call fcn.0044ee30
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x1e4], 0xffffffff
call fcn.00421120
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x118], 0
je 0x451f66
mov edx, dword [esp + 0x7c]
mov eax, dword [edx + 0x14]
lea ecx, [esp + 0x7c]
call eax
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp + 0x6c]
test ecx, ecx
je 0x451f7d
push edx
mov edx, dword [eax + 0x30]
push edx
call ecx
add esp, 8
mov eax, dword [ebp]
mov edx, dword [eax + 0x24]
mov ecx, ebp
call edx
lea ecx, [esp + 0x7c]
mov byte [esp + 0x1e0], 0
call fcn.0044ee30
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x1e4], 0xffffffff
call fcn.00421120
mov eax, edi
mov ecx, dword [esp + 0x1d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x118], 0
je 0x451fdd
mov edx, dword [esp + 0x7c]
mov eax, dword [edx + 0x14]
lea ecx, [esp + 0x7c]
call eax
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp + 0x6c]
test ecx, ecx
je 0x451ff4
push edx
mov edx, dword [eax + 0x30]
push edx
call ecx
add esp, 8
mov eax, dword [ebp]
mov edx, dword [eax + 0x24]
mov ecx, ebp
call edx
lea ecx, [esp + 0x7c]
mov byte [esp + 0x1e0], 0
call fcn.0044ee30
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x1e4], 0xffffffff
call fcn.00421120
mov eax, 0x1000900
mov ecx, dword [esp + 0x1d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x118], 0
je 0x452057
mov edx, dword [esp + 0x7c]
mov eax, dword [edx + 0x14]
lea ecx, [esp + 0x7c]
call eax
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp + 0x6c]
test ecx, ecx
je 0x45206e
push edx
mov edx, dword [eax + 0x30]
push edx
call ecx
add esp, 8
mov eax, dword [ebp]
mov edx, dword [eax + 0x24]
mov ecx, ebp
call edx
lea ecx, [esp + 0x7c]
mov byte [esp + 0x1e0], 0
call fcn.0044ee30
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x1e4], 0xffffffff
call fcn.00421120
mov eax, edi
mov ecx, dword [esp + 0x1d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x7c]
call fcn.0044e7a0
mov edi, dword [ebp + 0x60]
mov ecx, 0x2000000
mov eax, ebp
call fcn.00450080
mov dword [esp + 0x18], 0x2000000
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebp + 0x60]
push ecx
mov ecx, ebp
call fcn.004502c0
mov eax, ebp
call fcn.0044ffc0
mov edx, dword [ebp]
mov eax, dword [edx + 0x24]
mov ecx, ebp
call eax
test bl, 1
je 0x452102
mov dword [esp + 0x18], eax
mov ebx, eax
lea ecx, [esp + 0x7c]
call fcn.0044e7a0
lea ecx, [esp + 0x7c]
mov byte [esp + 0x1e0], 0
call fcn.0044ee30
lea ecx, [esp + 0x34]
push ecx
mov dword [esp + 0x1e4], 0xffffffff
call fcn.00421120
mov eax, ebx
mov ecx, dword [esp + 0x1d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret