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

Disassembly:
sub esp, 0xac
push ebx
push ebp
push esi
push edi
mov esi, ecx
push 0
lea ecx, [esp + 0x78]
mov dword [esp + 0x84], esi
call fcn.00499690
lea ecx, [esp + 0x38]
call fcn.005529a0
push 0
lea ecx, [esp + 0x4c]
call fcn.00499690
lea ecx, [esp + 0x50]
call fcn.005529a0
push 0
lea ecx, [esp + 0x64]
call fcn.00499690
lea ecx, [esp + 0x1c]
call fcn.005529a0
push 0
lea ecx, [esp + 0x30]
call fcn.00499690
lea ecx, [esp + 0xa4]
call fcn.005529a0
push 0
lea ecx, [esp + 0xb8]
call fcn.00499690
lea ecx, [esp + 0x8c]
call fcn.005529a0
push 0
lea ecx, [esp + 0xa0]
call fcn.00499690
xor ecx, ecx
mov cl, byte [esi + 0x10]
lea eax, [esi + 0x14]
push ecx
push eax
lea ecx, [esp + 0x40]
call fcn.0055be10
mov edx, dword [esp + 0xc8]
push edx
lea eax, [esp + 0x3c]
push eax
mov ecx, esi
call fcn.0055f010
mov eax, dword [esp + 0xc4]
cmp dword [eax], 1
jbe 0x55f663
push eax
lea ecx, [esp + 0x54]
push ecx
mov ecx, esi
call fcn.0055c4b0
jmp 0x55fa84
mov ecx, dword [esi + 0x2c]
lea edi, [esi + 0x24]
shr ecx, 1
xor eax, eax
test ecx, ecx
jbe 0x55f693
mov ebx, dword [edi + 4]
mov edx, ebx
cmp word [edx], 0x100
je 0x55f687
inc eax
add edx, 0x30
cmp eax, ecx
jb 0x55f676
jmp 0x55f693
lea eax, [eax + eax*2]
shl eax, 4
add eax, ebx
test eax, eax
jne 0x55f6a3
xor edx, edx
mov dl, byte [esi + 0x10]
lea ecx, [esp + 0x50]
push edx
push edi
call fcn.0055be10
mov al, byte [esp + 0xcc]
test al, al
jne 0x55fa84
mov eax, dword [esp + 0x58]
xor ebp, ebp
shr eax, 1
xor esi, esi
cmp eax, ebp
jbe 0x55f897
mov ecx, dword [esp + 0x54]
cmp word [ecx], 0x201
je 0x55f6dc
inc esi
add ecx, 0x30
cmp esi, eax
jb 0x55f6c8
jmp 0x55f897
call fcn.00552c10
test byte [esp + 0x58], 1
jne 0x55f897
mov eax, dword [esp + 0x58]
shr eax, 1
cmp eax, ebp
je 0x55f897
dec eax
cmp esi, eax
mov edx, esi
jae 0x55f728
lea eax, [esi + esi*2]
shl eax, 4
mov ecx, dword [esp + 0x54]
lea esi, [eax + ecx + 0x30]
lea edi, [eax + ecx]
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x58]
shr ecx, 1
inc edx
add eax, 0x30
dec ecx
cmp edx, ecx
jb 0x55f707
mov ecx, dword [esp + 0x58]
mov eax, ecx
shr eax, 1
lea ebx, [eax - 1]
and ecx, 1
cmp ebx, eax
mov dword [esp + 0x10], ebx
je 0x55f897
cmp ecx, ebp
je 0x55f7c5
xor esi, esi
cmp ebx, ebp
je 0x55f7ab
lea edx, [ebx + ebx*2]
shl edx, 4
push edx
call fcn.00489377
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x55f883
push fcn.0055bc30
push ebx
push 0x30
push ebp
call fcn.00430db0
mov eax, dword [esp + 0x58]
shr eax, 1
cmp eax, ebx
mov esi, ebp
mov dword [esp + 0x14], esi
mov edx, ebx
ja 0x55f787
mov edx, eax
test edx, edx
jbe 0x55f7ab
xor eax, eax
lea ecx, [ecx]
mov ecx, dword [esp + 0x54]
lea esi, [eax + ecx]
lea edi, [eax + ebp]
mov ecx, 0xc
add eax, 0x30
dec edx
rep movsd dword es:[edi], dword [esi]
jne 0x55f790
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x54]
test eax, eax
je 0x55f7bc
push eax
call fcn.00489183
add esp, 4
mov dword [esp + 0x54], esi
jmp 0x55f883
mov esi, 1
cmp ebx, esi
jb 0x55f7d6
mov edi, edi
add esi, esi
cmp esi, ebx
jbe 0x55f7d0
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebp
fild qword [esp + 0x14]
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x55f801
mov edx, 1
shl edx, cl
jmp 0x55f803
xor edx, edx
cmp edx, eax
jae 0x55f809
add edx, edx
cmp edx, esi
je 0x55f883
cmp esi, ebp
je 0x55f86a
lea eax, [esi + esi*2]
shl eax, 4
push eax
call fcn.00489377
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x55f87f
lea eax, [esi - 1]
test eax, eax
mov edi, ebp
jl 0x55f83f
lea ebx, [eax + 1]
mov ecx, edi
call fcn.0055bc30
add edi, 0x30
dec ebx
jne 0x55f832
mov eax, dword [esp + 0x58]
shr eax, 1
cmp eax, esi
mov edx, esi
ja 0x55f84d
mov edx, eax
test edx, edx
jbe 0x55f86a
xor eax, eax
mov ecx, dword [esp + 0x54]
lea esi, [eax + ecx]
lea edi, [eax + ebp]
mov ecx, 0xc
add eax, 0x30
dec edx
rep movsd dword es:[edi], dword [esi]
jne 0x55f853
mov eax, dword [esp + 0x54]
test eax, eax
je 0x55f87b
push eax
call fcn.00489183
add esp, 4
mov dword [esp + 0x54], ebp
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x58]
lea eax, [ebx + ebx]
mov edx, eax
xor edx, edi
and edx, 1
xor edx, eax
mov dword [esp + 0x58], edx
mov eax, dword [esp + 0x58]
shr eax, 1
xor esi, esi
test eax, eax
jbe 0x55fa84
mov ecx, dword [esp + 0x54]
nop
lea esp, [esp]
cmp word [ecx], 0x202
je 0x55f8c4
inc esi
add ecx, 0x30
cmp esi, eax
jb 0x55f8b0
jmp 0x55fa84
call fcn.00552c10
mov ecx, dword [esp + 0x58]
test cl, 1
jne 0x55fa84
mov eax, ecx
shr eax, 1
test eax, eax
je 0x55fa84
dec eax
cmp esi, eax
mov edx, esi
jae 0x55f915
lea eax, [esi + esi*2]
shl eax, 4
nop
mov ecx, dword [esp + 0x54]
lea esi, [eax + ecx + 0x30]
lea edi, [eax + ecx]
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x58]
shr ecx, 1
inc edx
add eax, 0x30
dec ecx
cmp edx, ecx
jb 0x55f8f0
mov ecx, dword [esp + 0x58]
mov eax, ecx
shr eax, 1
lea ebx, [eax - 1]
and ecx, 1
cmp ebx, eax
mov dword [esp + 0x10], ebx
je 0x55fa84
xor ebp, ebp
cmp ecx, ebp
je 0x55f9ad
xor esi, esi
cmp ebx, ebp
je 0x55f993
lea edx, [ebx + ebx*2]
shl edx, 4
push edx
call fcn.00489377
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x55fa70
push fcn.0055bc30
push ebx
push 0x30
push ebp
call fcn.00430db0
mov eax, dword [esp + 0x58]
shr eax, 1
cmp eax, ebx
mov esi, ebp
mov dword [esp + 0x14], esi
mov edx, ebx
ja 0x55f972
mov edx, eax
test edx, edx
jbe 0x55f993
xor eax, eax
mov ecx, dword [esp + 0x54]
lea esi, [eax + ecx]
lea edi, [eax + ebp]
mov ecx, 0xc
add eax, 0x30
dec edx
rep movsd dword es:[edi], dword [esi]
jne 0x55f978
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x54]
test eax, eax
je 0x55f9a4
push eax
call fcn.00489183
add esp, 4
mov dword [esp + 0x54], esi
jmp 0x55fa70
mov esi, 1
cmp ebx, esi
jb 0x55f9bc
add esi, esi
cmp esi, ebx
jbe 0x55f9b6
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebp
fild qword [esp + 0x14]
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x55f9e7
mov edx, 1
shl edx, cl
jmp 0x55f9e9
xor edx, edx
cmp edx, eax
jae 0x55f9ef
add edx, edx
cmp edx, esi
je 0x55fa70
cmp esi, ebp
je 0x55fa57
lea eax, [esi + esi*2]
shl eax, 4
push eax
call fcn.00489377
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x55fa6c
lea eax, [esi - 1]
test eax, eax
mov edi, ebp
jl 0x55fa25
lea ebx, [eax + 1]
mov ecx, edi
call fcn.0055bc30
add edi, 0x30
dec ebx
jne 0x55fa18
mov eax, dword [esp + 0x58]
shr eax, 1
cmp eax, esi
mov edx, esi
ja 0x55fa33
mov edx, eax
test edx, edx
jbe 0x55fa57
xor eax, eax
lea esp, [esp]
mov ecx, dword [esp + 0x54]
lea esi, [eax + ecx]
lea edi, [eax + ebp]
mov ecx, 0xc
add eax, 0x30
dec edx
rep movsd dword es:[edi], dword [esi]
jne 0x55fa40
mov eax, dword [esp + 0x54]
test eax, eax
je 0x55fa68
push eax
call fcn.00489183
add esp, 4
mov dword [esp + 0x54], ebp
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x58]
lea eax, [ebx + ebx]
mov edx, eax
xor edx, edi
and edx, 1
xor edx, eax
mov dword [esp + 0x58], edx
mov esi, dword [esp + 0x80]
xor ecx, ecx
mov cl, byte [esi + 0x10]
lea eax, [esi + 0x34]
push ecx
push eax
lea ecx, [esp + 0x24]
call fcn.0055be10
mov edi, dword [esp + 0xc8]
push edi
lea edx, [esp + 0x20]
push edx
mov ecx, esi
call fcn.0055d5c0
xor eax, eax
mov al, byte [esi + 0x10]
lea ecx, [esi + 0x54]
push eax
push ecx
lea ecx, [esp + 0xac]
call fcn.0055be10
push edi
lea edx, [esp + 0xa8]
push edx
mov ecx, esi
call fcn.0055ea70
test edi, edi
je 0x55faf8
mov al, byte [edi + 0x138]
test al, al
je 0x55faf8
push edi
lea eax, [esp + 0x90]
push eax
mov ecx, esi
call fcn.0055cc60
jmp 0x55fb0e
xor ecx, ecx
mov cl, byte [esi + 0x10]
add esi, 0x44
push ecx
push esi
lea ecx, [esp + 0x94]
call fcn.0055be10
test dword [esp + 0x24], 0xfffffffe
jne 0x55fd05
mov eax, dword [esp + 0x40]
shr eax, 1
xor esi, esi
test eax, eax
jbe 0x55fd05
mov ecx, dword [esp + 0x3c]
cmp word [ecx], 0x8769
je 0x55fb44
inc esi
add ecx, 0x30
cmp esi, eax
jb 0x55fb30
jmp 0x55fd05
call fcn.00552c10
mov ecx, dword [esp + 0x40]
test cl, 1
jne 0x55fd05
mov eax, ecx
shr eax, 1
test eax, eax
je 0x55fd05
dec eax
cmp esi, eax
mov edx, esi
jae 0x55fb95
lea eax, [esi + esi*2]
shl eax, 4
nop
mov ecx, dword [esp + 0x3c]
lea esi, [ecx + eax + 0x30]
lea edi, [ecx + eax]
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x40]
shr ecx, 1
inc edx
add eax, 0x30
dec ecx
cmp edx, ecx
jb 0x55fb70
mov ecx, dword [esp + 0x40]
mov eax, ecx
shr eax, 1
lea ebx, [eax - 1]
and ecx, 1
cmp ebx, eax
mov dword [esp + 0x10], ebx
je 0x55fd05
test ecx, ecx
je 0x55fc2b
xor esi, esi
test ebx, ebx
je 0x55fc11
lea edx, [ebx + ebx*2]
shl edx, 4
push edx
call fcn.00489377
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x55fcf1
push fcn.0055bc30
push ebx
push 0x30
push ebp
call fcn.00430db0
mov eax, dword [esp + 0x40]
shr eax, 1
cmp eax, ebx
mov esi, ebp
mov dword [esp + 0x14], esi
mov edx, ebx
ja 0x55fbf0
mov edx, eax
test edx, edx
jbe 0x55fc11
xor eax, eax
mov ecx, dword [esp + 0x3c]
lea esi, [ecx + eax]
lea edi, [eax + ebp]
mov ecx, 0xc
add eax, 0x30
dec edx
rep movsd dword es:[edi], dword [esi]
jne 0x55fbf6
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x55fc22
push eax
call fcn.00489183
add esp, 4
mov dword [esp + 0x3c], esi
jmp 0x55fcf1
mov esi, 1
cmp ebx, esi
jb 0x55fc3a
add esi, esi
cmp esi, ebx
jbe 0x55fc34
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0
fild qword [esp + 0x14]
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x55fc69
mov edx, 1
shl edx, cl
jmp 0x55fc6b
xor edx, edx
cmp edx, eax
jae 0x55fc71
add edx, edx
cmp edx, esi
je 0x55fcf1
xor ebp, ebp
test esi, esi
je 0x55fcd8
lea eax, [esi + esi*2]
shl eax, 4
push eax
call fcn.00489377
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x55fced
lea eax, [esi - 1]
test eax, eax
mov edi, ebp
jl 0x55fcad
lea ebx, [eax + 1]
mov ecx, edi
call fcn.0055bc30
add edi, 0x30
dec ebx
jne 0x55fca0
mov eax, dword [esp + 0x40]
shr eax, 1
cmp eax, esi
mov edx, esi
ja 0x55fcbb
mov edx, eax
test edx, edx
jbe 0x55fcd8
xor eax, eax
mov ecx, dword [esp + 0x3c]
lea esi, [ecx + eax]
lea edi, [eax + ebp]
mov ecx, 0xc
add eax, 0x30
dec edx
rep movsd dword es:[edi], dword [esi]
jne 0x55fcc1
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x55fce9
push eax
call fcn.00489183
add esp, 4
mov dword [esp + 0x3c], ebp
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x40]
lea eax, [ebx + ebx]
mov edx, eax
xor edx, edi
and edx, 1
xor edx, eax
mov dword [esp + 0x40], edx
test dword [esp + 0x94], 0xfffffffe
je 0x55fd41
lea eax, [esp + 0x38]
push 0x8825
push eax
call fcn.0055e6b0
add esp, 8
test eax, eax
je 0x55ff2b
push 0
push 4
push 0x8825
mov ecx, eax
call fcn.00562700
jmp 0x55ff2b
mov eax, dword [esp + 0x40]
shr eax, 1
xor esi, esi
test eax, eax
jbe 0x55ff2b
mov ecx, dword [esp + 0x3c]
cmp word [ecx], 0x8825
je 0x55fd69
inc esi
add ecx, 0x30
cmp esi, eax
jb 0x55fd55
jmp 0x55ff2b
call fcn.00552c10
mov ecx, dword [esp + 0x40]
test cl, 1
jne 0x55ff2b
mov eax, ecx
shr eax, 1
test eax, eax
je 0x55ff2b
dec eax
cmp esi, eax
mov edx, esi
jae 0x55fdb9
lea eax, [esi + esi*2]
shl eax, 4
mov ecx, dword [esp + 0x3c]
lea esi, [ecx + eax + 0x30]
lea edi, [ecx + eax]
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x40]
shr ecx, 1
inc edx
add eax, 0x30
dec ecx
cmp edx, ecx
jb 0x55fd94
mov ecx, dword [esp + 0x40]
mov eax, ecx
shr eax, 1
lea ebx, [eax - 1]
and ecx, 1
cmp ebx, eax
mov dword [esp + 0x10], ebx
je 0x55ff2b
xor ebp, ebp
cmp ecx, ebp
je 0x55fe55
xor esi, esi
cmp ebx, ebp
je 0x55fe3b
lea edx, [ebx + ebx*2]
shl edx, 4
push edx
call fcn.00489377
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x55ff17
push fcn.0055bc30
push ebx
push 0x30
push ebp
call fcn.00430db0
mov eax, dword [esp + 0x40]
shr eax, 1
cmp eax, ebx
mov esi, ebp
mov dword [esp + 0x14], esi
mov edx, ebx
ja 0x55fe1a
mov edx, eax
test edx, edx
jbe 0x55fe3b
xor eax, eax
mov ecx, dword [esp + 0x3c]
lea esi, [ecx + eax]
lea edi, [eax + ebp]
mov ecx, 0xc
add eax, 0x30
dec edx
rep movsd dword es:[edi], dword [esi]
jne 0x55fe20
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x55fe4c
push eax
call fcn.00489183
add esp, 4
mov dword [esp + 0x3c], esi
jmp 0x55ff17
mov esi, 1
cmp ebx, esi
jb 0x55fe66
mov edi, edi
add esi, esi
cmp esi, ebx
jbe 0x55fe60
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebp
fild qword [esp + 0x14]
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x55fe91
mov edx, 1
shl edx, cl
jmp 0x55fe93
xor edx, edx
cmp edx, eax
jae 0x55fe99
add edx, edx
cmp edx, esi
je 0x55ff17
cmp esi, ebp
je 0x55fefe
lea eax, [esi + esi*2]
shl eax, 4
push eax
call fcn.00489377
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x55ff13
lea eax, [esi - 1]
test eax, eax
mov edi, ebp
jl 0x55fed3
lea ebx, [eax + 1]
mov ecx, edi
call fcn.0055bc30
add edi, 0x30
dec ebx
jne 0x55fec6
mov eax, dword [esp + 0x40]
shr eax, 1
cmp eax, esi
mov edx, esi
ja 0x55fee1
mov edx, eax
test edx, edx
jbe 0x55fefe
xor eax, eax
mov ecx, dword [esp + 0x3c]
lea esi, [ecx + eax]
lea edi, [eax + ebp]
mov ecx, 0xc
add eax, 0x30
dec edx
rep movsd dword es:[edi], dword [esi]
jne 0x55fee7
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x55ff0f
push eax
call fcn.00489183
add esp, 4
mov dword [esp + 0x3c], ebp
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x40]
lea eax, [ebx + ebx]
mov edx, eax
xor edx, edi
and edx, 1
xor edx, eax
mov dword [esp + 0x40], edx
test dword [esp + 0xac], 0xfffffffe
jne 0x560129
mov eax, dword [esp + 0x24]
shr eax, 1
xor esi, esi
test eax, eax
jbe 0x560129
mov ecx, dword [esp + 0x20]
cmp word [ecx], 0xa005
je 0x55ff64
inc esi
add ecx, 0x30
cmp esi, eax
jb 0x55ff50
jmp 0x560129
call fcn.00552c10
mov ecx, dword [esp + 0x24]
test cl, 1
jne 0x560129
mov eax, ecx
shr eax, 1
test eax, eax
je 0x560129
dec eax
cmp esi, eax
mov edx, esi
jae 0x55ffb5
lea eax, [esi + esi*2]
shl eax, 4
nop
mov ecx, dword [esp + 0x20]
lea esi, [eax + ecx + 0x30]
lea edi, [eax + ecx]
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x24]
shr ecx, 1
inc edx
add eax, 0x30
dec ecx
cmp edx, ecx
jb 0x55ff90
mov ecx, dword [esp + 0x24]
mov eax, ecx
shr eax, 1
lea ebx, [eax - 1]
and ecx, 1
cmp ebx, eax
mov dword [esp + 0x10], ebx
je 0x560129
xor ebp, ebp
cmp ecx, ebp
je 0x560055
xor esi, esi
cmp ebx, ebp
je 0x56003b
lea edx, [ebx + ebx*2]
shl edx, 4
push edx
call fcn.00489377
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x560117
push fcn.0055bc30
push ebx
push 0x30
push ebp
call fcn.00430db0
mov eax, dword [esp + 0x24]
shr eax, 1
cmp eax, ebx
mov esi, ebp
mov dword [esp + 0x14], esi
mov edx, ebx
ja 0x560016
mov edx, eax
test edx, edx
jbe 0x56003b
xor eax, eax
lea esp, [esp]
mov ecx, dword [esp + 0x20]
lea esi, [eax + ecx]
lea edi, [eax + ebp]
mov ecx, 0xc
add eax, 0x30
dec edx
rep movsd dword es:[edi], dword [esi]
jne 0x560020
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x56004c
push eax
call fcn.00489183
add esp, 4
mov dword [esp + 0x20], esi
jmp 0x560117
mov esi, 1
cmp ebx, esi
jb 0x560066
mov edi, edi
add esi, esi
cmp esi, ebx
jbe 0x560060
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebp
fild qword [esp + 0x14]
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x560091
mov edx, 1
shl edx, cl
jmp 0x560093
xor edx, edx
cmp edx, eax
jae 0x560099
add edx, edx
cmp edx, esi
je 0x560117
cmp esi, ebp
je 0x5600fe
lea eax, [esi + esi*2]
shl eax, 4
push eax
call fcn.00489377
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x560113
lea eax, [esi - 1]
test eax, eax
mov edi, ebp
jl 0x5600d3
lea ebx, [eax + 1]
mov ecx, edi
call fcn.0055bc30
add edi, 0x30
dec ebx
jne 0x5600c6
mov eax, dword [esp + 0x24]
shr eax, 1
cmp eax, esi
mov edx, esi
ja 0x5600e1
mov edx, eax
test edx, edx
jbe 0x5600fe
xor eax, eax
mov ecx, dword [esp + 0x20]
lea esi, [eax + ecx]
lea edi, [eax + ebp]
mov ecx, 0xc
add eax, 0x30
dec edx
rep movsd dword es:[edi], dword [esi]
jne 0x5600e7
mov eax, dword [esp + 0x20]
test eax, eax
je 0x56010f
push eax
call fcn.00489183
add esp, 4
mov dword [esp + 0x20], ebp
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
lea eax, [ebx + ebx]
xor edx, eax
and edx, 1
xor edx, eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x40]
mov ebp, 0xfffffffe
xor ebx, ebx
test ebp, eax
jbe 0x560185
xor edi, edi
lea ebx, [ebx]
mov eax, dword [esp + 0x3c]
lea esi, [edi + eax]
mov eax, dword [esi + 0x20]
test eax, eax
je 0x560177
mov ecx, dword [esp + 0x48]
mov edx, dword [esi + 0x24]
mov dword [esi + 8], ecx
push edx
lea ecx, [esp + 0x4c]
call fcn.00560dd0
test eax, eax
je 0x56019e
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x20]
push ecx
push edx
push eax
call fcn.00487f10
add esp, 0xc
mov eax, dword [esp + 0x40]
inc ebx
shr eax, 1
add edi, 0x30
cmp ebx, eax
jb 0x560140
test byte [esp + 0x48], 1
je 0x56019e
push 1
lea ecx, [esp + 0x4c]
call fcn.00560dd0
test eax, eax
je 0x56019e
mov byte [eax], 0
mov eax, dword [esp + 0x58]
xor ebx, ebx
test ebp, eax
jbe 0x5601f6
xor edi, edi
lea ebx, [ebx]
mov ecx, dword [esp + 0x54]
mov eax, dword [edi + ecx + 0x20]
test eax, eax
lea esi, [edi + ecx]
je 0x5601e8
mov eax, dword [esi + 0x24]
mov edx, dword [esp + 0x60]
push eax
lea ecx, [esp + 0x64]
mov dword [esi + 8], edx
call fcn.00560dd0
test eax, eax
je 0x56020f
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x20]
push ecx
push edx
push eax
call fcn.00487f10
add esp, 0xc
mov eax, dword [esp + 0x58]
inc ebx
shr eax, 1
add edi, 0x30
cmp ebx, eax
jb 0x5601b0
test byte [esp + 0x60], 1
je 0x56020f
push 1
lea ecx, [esp + 0x64]
call fcn.00560dd0
test eax, eax
je 0x56020f
mov byte [eax], 0
mov eax, dword [esp + 0x24]
xor ebx, ebx
test ebp, eax
jbe 0x560266
xor edi, edi
nop
lea esp, [esp]
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + ecx + 0x20]
test eax, eax
lea esi, [edi + ecx]
je 0x560258
mov eax, dword [esi + 0x24]
mov edx, dword [esp + 0x2c]
push eax
lea ecx, [esp + 0x30]
mov dword [esi + 8], edx
call fcn.00560dd0
test eax, eax
je 0x56027f
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x20]
push ecx
push edx
push eax
call fcn.00487f10
add esp, 0xc
mov eax, dword [esp + 0x24]
inc ebx
shr eax, 1
add edi, 0x30
cmp ebx, eax
jb 0x560220
test byte [esp + 0x2c], 1
je 0x56027f
push 1
lea ecx, [esp + 0x30]
call fcn.00560dd0
test eax, eax
je 0x56027f
mov byte [eax], 0
mov eax, dword [esp + 0xac]
xor ebx, ebx
xor ebp, ebp
test eax, 0xfffffffe
jbe 0x5602e5
xor edi, edi
mov ecx, dword [esp + 0xa8]
mov eax, dword [edi + ecx + 0x20]
cmp eax, ebx
lea esi, [edi + ecx]
je 0x5602d4
mov eax, dword [esi + 0x24]
mov edx, dword [esp + 0xb4]
push eax
lea ecx, [esp + 0xb8]
mov dword [esi + 8], edx
call fcn.00560dd0
cmp eax, ebx
je 0x560304
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x20]
push ecx
push edx
push eax
call fcn.00487f10
add esp, 0xc
mov eax, dword [esp + 0xac]
inc ebp
shr eax, 1
add edi, 0x30
cmp ebp, eax
jb 0x560293
test byte [esp + 0xb4], 1
je 0x560304
push 1
lea ecx, [esp + 0xb8]
call fcn.00560dd0
cmp eax, ebx
je 0x560304
mov byte [eax], 0
mov eax, dword [esp + 0x94]
xor ebp, ebp
test eax, 0xfffffffe
jbe 0x560368
xor edi, edi
mov ecx, dword [esp + 0x90]
mov eax, dword [edi + ecx + 0x20]
cmp eax, ebx
lea esi, [edi + ecx]
je 0x560357
mov eax, dword [esi + 0x24]
mov edx, dword [esp + 0x9c]
push eax
lea ecx, [esp + 0xa0]
mov dword [esi + 8], edx
call fcn.00560dd0
cmp eax, ebx
je 0x560387
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x20]
push ecx
push edx
push eax
call fcn.00487f10
add esp, 0xc
mov eax, dword [esp + 0x94]
inc ebp
shr eax, 1
add edi, 0x30
cmp ebp, eax
jb 0x560316
test byte [esp + 0x9c], 1
je 0x560387
push 1
lea ecx, [esp + 0xa0]
call fcn.00560dd0
cmp eax, ebx
je 0x560387
mov byte [eax], 0
mov eax, dword [esp + 0x74]
mov esi, eax
push 1
add eax, 0xe
push eax
lea ecx, [esp + 0x7c]
call fcn.00499780
test eax, eax
je 0x5603a4
xor esi, esi
jmp 0x5603aa
mov ecx, dword [esp + 0x78]
add esi, ecx
mov edx, dword [str.Exif]
push 6
push edx
push esi
call fcn.00487f10
add esi, 6
mov word [esi], 0x4949
add esi, 2
mov word [esi], 0x2a
mov dword [esi + 2], 8
mov ecx, dword [esp + 0x4c]
shr ecx, 1
add esp, 0xc
cmp ecx, ebx
jne 0x5603e1
xor edx, edx
jmp 0x5603ec
mov edx, dword [esp + 0x48]
lea eax, [ecx + ecx*2]
lea edx, [edx + eax*4 + 6]
mov eax, dword [esp + 0x58]
shr eax, 1
cmp eax, ebx
jne 0x5603fc
mov dword [esp + 0x7c], ebx
jmp 0x56040b
mov esi, dword [esp + 0x60]
lea eax, [eax + eax*2]
lea eax, [esi + eax*4 + 6]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x24]
shr eax, 1
cmp eax, ebx
jne 0x56041b
mov dword [esp + 0x34], ebx
jmp 0x56042a
mov esi, dword [esp + 0x2c]
lea eax, [eax + eax*2]
lea eax, [esi + eax*4 + 6]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xac]
shr eax, 1
cmp eax, ebx
jne 0x560440
mov dword [esp + 0x84], ebx
jmp 0x560455
mov esi, dword [esp + 0xb4]
lea eax, [eax + eax*2]
lea eax, [esi + eax*4 + 6]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x94]
shr eax, 1
cmp eax, ebx
jne 0x560468
mov dword [esp + 0x10], ebx
jmp 0x56047a
mov esi, dword [esp + 0x9c]
lea eax, [eax + eax*2]
lea eax, [esi + eax*4 + 6]
mov dword [esp + 0x10], eax
lea edi, [edx + 8]
xor eax, eax
cmp ecx, ebx
mov dword [esp + 0x88], edi
jbe 0x5604b0
mov esi, dword [esp + 0x3c]
mov edx, esi
cmp word [edx], 0x8769
je 0x5604a1
inc eax
add edx, 0x30
cmp eax, ecx
jb 0x560490
jmp 0x5604b0
lea eax, [eax + eax*2]
shl eax, 4
add eax, esi
cmp eax, ebx
je 0x5604b0
mov dword [eax + 8], edi
mov ebx, dword [esp + 0x24]
shr ebx, 1
test ebx, ebx
je 0x560890
mov ebp, dword [esp + 0x80]
mov ecx, dword [ebp + 0x1c]
shr ecx, 1
xor eax, eax
test ecx, ecx
jbe 0x5604e4
mov esi, dword [ebp + 0x18]
mov edx, esi
cmp word [edx], 0x10f
je 0x560511
inc eax
add edx, 0x30
cmp eax, ecx
jb 0x5604d5
xor edi, edi
mov ecx, dword [ebp + 0x3c]
add ebp, 0x34
shr ecx, 1
xor eax, eax
test ecx, ecx
jbe 0x560525
mov ebp, dword [ebp + 4]
mov edx, ebp
lea esp, [esp]
cmp word [edx], 0x927c
je 0x56051b
inc eax
add edx, 0x30
cmp eax, ecx
jb 0x560500
jmp 0x560525
lea edi, [eax + eax*2]
shl edi, 4
add edi, esi
jmp 0x5604e6
lea esi, [eax + eax*2]
shl esi, 4
add esi, ebp
jmp 0x560527
xor esi, esi
mov ecx, dword [esp + 0x20]
xor eax, eax
test ebx, ebx
mov dword [esp + 0x70], esi
jbe 0x560546
mov edx, ecx
cmp word [edx], 0x927c
je 0x56058d
inc eax
add edx, 0x30
cmp eax, ebx
jb 0x560537
xor edx, edx
test edi, edi
mov dword [esp + 0x14], edx
je 0x560825
cmp word [edi + 2], 2
mov dword [esp + 0x34], 0
jne 0x560621
mov eax, dword [edi + 4]
cmp eax, 4
lea ecx, [esp + 0x68]
mov dword [esp + 0x68], 0
ja 0x560597
push 4
add edi, 8
push edi
call fcn.0049d9d0
lea ecx, [esp + 0x68]
push ecx
jmp 0x5605a6
lea edx, [eax + eax*2]
shl edx, 4
add edx, ecx
jmp 0x560548
mov edx, dword [edi + 0x20]
push eax
push edx
call fcn.0049d9d0
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x38]
call fcn.00436200
lea ecx, [esp + 0x68]
call fcn.004039f0
mov eax, dword [esp + 0x34]
test eax, eax
je 0x56061d
lea esi, [eax + 4]
mov edx, str.canon
cmp esi, edx
je 0x560814
test esi, esi
je 0x56061d
mov al, byte [str.canon]
test al, al
je 0x560614
lea ecx, [ecx]
mov cl, byte [esi]
test cl, cl
mov al, byte [edx]
je 0x560610
cmp al, 0x41
jl 0x5605f2
cmp al, 0x5a
jg 0x5605f2
add al, 0x20
cmp cl, 0x41
jl 0x5605ff
cmp cl, 0x5a
jg 0x5605ff
add cl, 0x20
cmp al, cl
jl 0x56061d
jg 0x56061d
mov al, byte [edx + 1]
inc edx
inc esi
test al, al
jne 0x5605e0
jmp 0x560614
test al, al
jne 0x56061d
cmp byte [esi], 0
je 0x560814
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x80]
mov al, byte [edx + 0x10]
test al, al
mov dword [esp + 0x70], 0
je 0x560814
mov eax, dword [esp + 0x24]
shr eax, 1
xor esi, esi
test eax, eax
jbe 0x560814
nop
lea esp, [esp]
cmp word [ecx], 0x927c
je 0x560664
inc esi
add ecx, 0x30
cmp esi, eax
jb 0x560650
jmp 0x560814
call fcn.00552c10
mov ecx, dword [esp + 0x24]
test cl, 1
jne 0x560814
mov eax, ecx
shr eax, 1
test eax, eax
je 0x560814
dec eax
cmp esi, eax
mov edx, esi
jae 0x5606b5
lea eax, [esi + esi*2]
shl eax, 4
nop
mov ecx, dword [esp + 0x20]
lea esi, [eax + ecx + 0x30]
lea edi, [eax + ecx]
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x24]
shr ecx, 1
inc edx
add eax, 0x30
dec ecx
cmp edx, ecx
jb 0x560690
mov ecx, dword [esp + 0x24]
mov eax, ecx
shr eax, 1
lea ebx, [eax - 1]
and ecx, 1
cmp ebx, eax
je 0x560814
xor edi, edi
cmp ecx, edi
je 0x560749
xor esi, esi
cmp ebx, edi
je 0x56072f
lea edx, [ebx + ebx*2]
shl edx, 4
push edx
call fcn.00489377
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x560800
push fcn.0055bc30
push ebx
push 0x30
push ebp
call fcn.00430db0
mov eax, dword [esp + 0x24]
shr eax, 1
cmp eax, ebx
mov esi, ebp
mov dword [esp + 0x68], esi
mov edx, ebx
ja 0x56070e
mov edx, eax
test edx, edx
jbe 0x56072f
xor eax, eax
mov ecx, dword [esp + 0x20]
lea esi, [eax + ecx]
lea edi, [eax + ebp]
mov ecx, 0xc
add eax, 0x30
dec edx
rep movsd dword es:[edi], dword [esi]
jne 0x560714
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x560740
push eax
call fcn.00489183
add esp, 4
mov dword [esp + 0x20], esi
jmp 0x560800
mov esi, 1
cmp ebx, esi
jb 0x560758
add esi, esi
cmp esi, ebx
jbe 0x560752
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edi
fild qword [esp + 0x68]
fstp dword [esp + 0x68]
mov ecx, dword [esp + 0x68]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x560783
mov edx, 1
shl edx, cl
jmp 0x560785
xor edx, edx
cmp edx, eax
jae 0x56078b
add edx, edx
cmp edx, esi
je 0x560800
cmp esi, edi
je 0x5607eb
lea eax, [esi + esi*2]
shl eax, 4
push eax
call fcn.00489377
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x560800
push fcn.0055bc30
push esi
push 0x30
push ebp
call fcn.00430db0
mov eax, dword [esp + 0x24]
shr eax, 1
cmp eax, esi
mov edi, ebp
mov dword [esp + 0x68], edi
mov edx, esi
ja 0x5607ca
mov edx, eax
test edx, edx
jbe 0x5607eb
xor eax, eax
mov ecx, dword [esp + 0x20]
lea esi, [eax + ecx]
lea edi, [eax + ebp]
mov ecx, 0xc
add eax, 0x30
dec edx
rep movsd dword es:[edi], dword [esi]
jne 0x5607d0
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x5607fc
push eax
call fcn.00489183
add esp, 4
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x24]
lea eax, [ebx + ebx]
mov edx, eax
xor edx, edi
and edx, 1
xor edx, eax
mov dword [esp + 0x24], edx
lea ecx, [esp + 0x34]
call fcn.004039f0
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x70]
xor edi, edi
cmp esi, edi
je 0x560869
mov eax, dword [esp + 0x24]
mov ecx, dword [edx + 8]
mov ebx, dword [esi + 8]
shr eax, 1
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x88]
lea ecx, [eax + ecx + 6]
mov eax, ecx
sub eax, ebx
push eax
push ecx
push edx
call fcn.0055bc60
add esp, 0xc
test eax, eax
je 0x560869
push 0x927c
lea ecx, [esp + 0x20]
call fcn.00560a70
lea ecx, [esp + 0x2c]
call fcn.00499750
lea ecx, [esp + 0x1c]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
call fcn.00560ce0
lea ecx, [esp + 0x1c]
call fcn.00560a50
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x84]
lea esi, [edx + eax]
mov edx, dword [esp + 0x10]
lea ebx, [esi + ecx]
push 0x8825
lea ecx, [esp + 0x3c]
lea ebp, [ebx + edx]
call fcn.0055e670
test eax, eax
je 0x5608c4
mov dword [eax + 8], ebx
push 0xa005
lea ecx, [esp + 0x20]
call fcn.0055e670
test eax, eax
je 0x5608d9
mov dword [eax + 8], esi
mov eax, dword [esp + 0x7c]
xor edi, edi
cmp eax, edi
mov dword [esp + 0x70], edi
jne 0x5608e9
xor ebp, ebp
push 0x201
lea ecx, [esp + 0x54]
call fcn.0055e670
test eax, eax
je 0x56090c
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x70], ecx
lea ecx, [edx + ebp]
mov dword [eax + 8], ecx
push 0x202
lea ecx, [esp + 0x54]
call fcn.0055e670
test eax, eax
je 0x560921
mov edi, dword [eax + 8]
push ebp
push 8
lea edx, [esp + 0x7c]
push edx
lea ecx, [esp + 0x44]
call fcn.0055bd40
mov eax, dword [esp + 0x34]
test eax, eax
je 0x560952
mov eax, dword [esp + 0x88]
push 0
push eax
lea ecx, [esp + 0x7c]
push ecx
lea ecx, [esp + 0x28]
call fcn.0055bd40
mov eax, dword [esp + 0x84]
test eax, eax
je 0x560971
push 0
push esi
lea edx, [esp + 0x7c]
push edx
lea ecx, [esp + 0xb0]
call fcn.0055bd40
mov eax, dword [esp + 0x10]
test eax, eax
je 0x56098d
push 0
push ebx
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x98]
call fcn.0055bd40
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x5609a6
push 0
push ebp
lea ecx, [esp + 0x7c]
push ecx
lea ecx, [esp + 0x5c]
call fcn.0055bd40
mov esi, dword [esp + 0xc4]
cmp dword [esi], 1
jbe 0x5609c3
push edi
lea ecx, [esp + 0x78]
call fcn.00560dd0
mov edx, dword [esi + 4]
push edi
push edx
jmp 0x5609eb
mov eax, dword [esp + 0x70]
test eax, eax
je 0x5609f4
test edi, edi
je 0x5609f4
mov eax, dword [esp + 0x80]
mov esi, dword [eax + 4]
mov eax, dword [esp + 0x70]
push edi
lea ecx, [esp + 0x78]
add esi, eax
call fcn.00560dd0
push edi
push esi
push eax
call fcn.00487f10
add esp, 0xc
lea ecx, [esp + 0x74]
push ecx
mov ecx, dword [esp + 0xc4]
call fcn.00560db0
lea ecx, [esp + 0x8c]
call fcn.00560e00
lea ecx, [esp + 0xa4]
call fcn.00560e00
lea ecx, [esp + 0x1c]
call fcn.00560e00
lea ecx, [esp + 0x50]
call fcn.00560e00
lea ecx, [esp + 0x38]
call fcn.00560e00
lea ecx, [esp + 0x74]
call fcn.004996f0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xac
ret 0x10