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

Disassembly:
sub esp, 0x50
mov eax, dword [esp + 0x54]
push ebx
push ebp
xor ebx, ebx
mov ecx, dword [eax + 0xcc]
push esi
push edi
mov edi, dword [eax + 0x10]
cmp ecx, ebx
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
jne 0x40736c
call fcn.00406990
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x40736c
push edi
mov dword [eax + 0x40], edi
mov dword [eax + 0x48], 0x800
mov dword [eax + 0x4c], ebx
call fcn.00488190
add esp, 4
cmp edx, ebx
jl 0x406f98
jg 0x406f86
cmp eax, 0x600000
jbe 0x406f98
sub eax, 0x600000
mov esi, 0x600000
sbb edx, ebx
mov ebx, eax
mov ebp, edx
jmp 0x406fa4
xor ebp, ebp
mov esi, eax
test eax, eax
jle 0x40736a
push esi
call fcn.00487e60
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
je 0x40736a
push esi
push ebp
push ebx
push eax
push edi
call fcn.00487fc0
add esp, 0x14
test eax, eax
je 0x40736a
mov ecx, dword [esp + 0x1c]
push 0x15
push esi
push str._plist_version_1.0__
push ecx
call fcn.00407570
add esp, 0x10
cmp eax, 0xffffffff
je 0x40736a
mov edx, dword [esp + 0x1c]
add eax, 0x15
sub esi, eax
push 8
lea ebx, [eax + edx]
push esi
push str.__plist_
push ebx
call fcn.004075e0
mov esi, eax
add esp, 0x10
cmp esi, 0xffffffff
jle 0x40736a
push 0xf
push esi
push str._key_blkx__key_
push ebx
call fcn.00407570
add esp, 0x10
cmp eax, 0xffffffff
je 0x40736a
add eax, 0xf
push 7
sub esi, eax
add ebx, eax
push esi
push str._array_
push ebx
call fcn.00407570
add esp, 0x10
cmp eax, 0xffffffff
je 0x40736a
add eax, 7
push 8
sub esi, eax
add ebx, eax
push esi
push str.__array_
push ebx
call fcn.00407570
add esp, 0x10
test eax, eax
jle 0x40736a
mov esi, eax
push 6
push esi
xor edi, edi
push str._data_
push ebx
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], edi
call fcn.00407570
add esp, 0x10
cmp eax, 0xffffffff
je 0x407366
add eax, 6
push 7
sub esi, eax
add ebx, eax
push esi
push str.__data_
push ebx
mov dword [esp + 0x48], esi
call fcn.00407570
add esp, 0x10
cmp eax, edi
mov dword [esp + 0x24], eax
jl 0x407366
add eax, 0x10
push eax
call fcn.00487e70
add esp, 4
cmp eax, edi
mov dword [esp + 0x14], eax
je 0x40736a
mov ecx, dword [esp + 0x24]
mov ebp, eax
mov eax, ecx
mov esi, ebx
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
add ebx, eax
sub ecx, eax
push eax
push ebp
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x40], ecx
call fcn.004073d0
lea ecx, [esp + 0x2c]
mov edi, ebp
push ecx
or ecx, 0xffffffff
xor eax, eax
push ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebp
call fcn.00407450
add esp, 0x18
test eax, eax
je 0x407364
mov edx, ebp
lea ebp, [edx + 0xd8]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp + 0x14]
mov esi, dword [ebp]
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x2c], ecx
mov ecx, dword [ebp + 0x18]
push eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x44], ecx
call fcn.00406ee0
push esi
mov dword [esp + 0x20], eax
call fcn.00406ee0
shl eax, 9
push ebx
mov dword [esp + 0x2c], eax
call fcn.00406ee0
mov ebx, eax
push edi
shl ebx, 9
call fcn.00406ee0
mov edx, dword [esp + 0x3c]
mov esi, eax
push edx
call fcn.00406ee0
mov edi, eax
mov eax, dword [esp + 0x3c]
push eax
mov dword [esp + 0x44], edi
call fcn.00406ee0
mov edx, dword [esp + 0x58]
mov dword [esp + 0x40], eax
xor eax, eax
xor ecx, ecx
or eax, edi
or esi, ecx
push edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], esi
call fcn.00406ee0
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x50]
mov esi, eax
xor edi, edi
xor eax, eax
add esp, 0x1c
or esi, eax
or edi, edx
cmp ecx, eax
jne 0x4071de
cmp dword [esp + 0x2c], eax
jne 0x407235
mov dword [esp + 0x30], 1
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x18]
cmp edx, 0x80000005
jne 0x40724d
test edi, edi
ja 0x40736a
jb 0x407208
cmp esi, 0x40000
ja 0x40736a
cmp ebx, 0x40000
ja 0x40736a
mov edx, dword [esp + 0x20]
push 0
push edx
mov edx, dword [esp + 0x58]
add edx, eax
mov eax, dword [esp + 0x5c]
push 0
push ebx
push edi
push esi
adc eax, ecx
push eax
push edx
push 0x80000005
jmp 0x407291
xor ecx, ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
jmp 0x4071e6
cmp edx, 1
jne 0x407270
mov edx, dword [esp + 0x20]
push 0
push edx
mov edx, dword [esp + 0x58]
add edx, eax
mov eax, dword [esp + 0x5c]
push 0
push ebx
push edi
push esi
adc eax, ecx
push eax
push edx
push 1
jmp 0x407291
cmp edx, 2
jne 0x4072ac
mov edx, dword [esp + 0x20]
push 0
push edx
mov edx, dword [esp + 0x58]
add edx, eax
mov eax, dword [esp + 0x5c]
push 0
push ebx
push edi
push esi
adc eax, ecx
push eax
push edx
push 2
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x88]
push ecx
push edx
call fcn.004069e0
mov edx, dword [esp + 0x44]
add esp, 0x2c
jmp 0x407310
cmp edx, 0x80000004
je 0x40736a
test ebx, ebx
je 0x4072f9
mov edx, dword [esp + 0x20]
push 0
push edx
mov edx, dword [esp + 0x58]
add edx, eax
mov eax, dword [esp + 0x5c]
push 0
push ebx
push edi
push esi
adc eax, ecx
mov ecx, dword [esp + 0x28]
push eax
push edx
mov edx, dword [esp + 0x84]
push 2
push ecx
push edx
call fcn.004069e0
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
add esp, 0x2c
cmp edx, 0xffffffff
jne 0x407310
add eax, dword [esp + 0x58]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x5c]
adc ecx, eax
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 0x30]
add ebp, 0x28
cmp eax, 1
jne 0x407330
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
add esi, ecx
adc edi, eax
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], edi
mov ecx, dword [esp + 0x34]
inc ecx
cmp edx, 0xffffffff
mov dword [esp + 0x34], ecx
jne 0x407134
mov eax, dword [esp + 0x14]
push eax
call fcn.00487ea0
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x3c]
add esp, 4
mov dword [esp + 0x14], 0
jmp 0x407071
xor edi, edi
mov dword [esp + 0x3c], edi
xor ebx, ebx
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.00487ea0
mov edx, dword [esp + 0x18]
push edx
call fcn.00487ea0
mov esi, dword [esp + 0x44]
add esp, 8
cmp esi, ebx
jne 0x4073ad
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x10]
pop edi
mov dword [eax + 0xc0], 4
mov dword [eax + 0x374c], ecx
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret
mov eax, dword [esp + 0x10]
cmp eax, ebx
je 0x4073be
push eax
call fcn.00406920
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret