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

Disassembly:
push ebp
mov ebp, esp
lea esp, [esp - 0xfc]
push ebx
push esi
push edi
mov dword [ebp - 0xf8], edx
mov word [ebp - 0xb4], cx
mov edx, dword [ebp + 8]
mov dword [ebp - 0xbc], edx
mov byte [ebp - 0x9c], 1
test eax, eax
je 0x57fa43
cmp dword [eax], 0
jne 0x57fa54
mov dword [0x62f3a0], 1
jmp 0x580c5c
mov esi, eax
mov ebx, dword [esi]
mov eax, ebx
mov edx, str.glyf
call fcn.0057d4e0
mov dword [ebp - 0xc8], eax
test eax, eax
jge 0x57fa80
mov dword [0x62f3a0], 0xa
jmp 0x580c5c
mov dword [ebp - 0xfc], ebx
mov eax, ebx
mov ecx, dword [eax + 0x1e0]
mov edx, dword [ebp - 0xc8]
shl edx, 4
mov eax, dword [ecx + edx + 8]
mov dword [ebp - 0xcc], eax
cmp byte [esi + 0x114], 0
je 0x57fab2
mov edi, dword [esi + 0x118]
jmp 0x57fabb
mov eax, esi
call fcn.0057c370
mov edi, eax
test edi, edi
jne 0x57fad0
mov dword [0x62f3a0], 0x100
jmp 0x580c5c
mov dword [ebp - 0xd0], esi
mov edx, esi
mov ebx, edi
mov eax, ebx
call fcn.0057c760
mov eax, dword [ebp - 0xf8]
mov edx, dword [ebp - 0xd0]
cmp dword [edx + 0x18], 0x18
setl byte [eax + 0x41]
mov dword [ebp - 0xd4], eax
mov byte [eax + 0x4c], 0
mov edx, ebx
lea edi, [ebp - 0x2c]
lea esi, [edx + 0x78]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0xfc]
mov eax, dword [ecx + 0x218]
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xe4], ecx
mov eax, dword [ecx + 0x21c]
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xec], 0
mov eax, dword [edx + 0x104]
mov dword [ebp - 0xf0], edx
mov ecx, edx
mov ebx, eax
xor edx, edx
call fcn.0057f970
mov eax, ebx
movzx edx, word [ebp - 0xb4]
mov dword [eax], edx
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0xbc]
and eax, 2
test eax, eax
mov eax, dword [ebp - 0xf4]
setne byte [eax + 5]
mov edx, dword [ebp - 0xd0]
mov ax, word [edx + 0xd8]
and ax, 1
je 0x57fbac
mov eax, dword [ebp - 0xf4]
mov byte [eax + 5], 0
mov esi, esi
mov eax, dword [ebp - 0xe4]
push dword [eax]
lea eax, [ebp - 0x14]
call fcn.0057b1d0
test al, al
jne 0x580c01
mov dword [ebp - 0xc0], 1
jmp 0x58082c
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax + 0x104]
imul eax, dword [ebp - 0xec], 0x70
add eax, edx
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0xc0]
cmp eax, 1
jb 0x58082c
sub eax, 1
je 0x57fc28
sub eax, 1
je 0x57fed0
sub eax, 1
je 0x57ffb0
sub eax, 1
je 0x580348
jmp 0x58082c
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax]
mov dword [ebp - 0x84], eax
test eax, eax
jl 0x57fc4e
mov eax, dword [ebp - 0xe4]
mov edx, dword [ebp - 0x84]
cmp edx, dword [eax + 0x214]
jl 0x57fc60
mov dword [0x62f3a0], 6
jmp 0x580bf4
mov edx, dword [ebp - 0xf4]
lea eax, [edx + 0x6c]
push eax
mov edx, dword [ebp - 0xf4]
lea eax, [edx + 0x68]
push eax
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0xe4]
mov cl, 1
call fcn.0057ef90
mov edx, dword [ebp - 0x84]
add edx, 1
mov eax, dword [ebp - 0xe4]
cmp edx, dword [eax + 0x1ec]
jge 0x57fd6f
mov ebx, dword [eax + 0x1f0]
mov ecx, dword [ebp - 0x84]
mov eax, dword [ebx + ecx*4]
cmp eax, dword [ebx + edx*4]
jne 0x57fd6f
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xe0], 0
mov eax, dword [ebp - 0xf4]
mov dword [eax + 8], 0
mov eax, dword [ebp - 0xf4]
mov dword [eax + 0x10], 0
mov eax, dword [ebp - 0xf4]
mov dword [eax + 0xc], 0
mov eax, dword [ebp - 0xf4]
mov dword [eax + 0x14], 0
mov eax, dword [ebp - 0xf4]
mov dword [eax + 0x58], 0
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 0x68]
mov eax, dword [ebp - 0xf4]
mov dword [eax + 0x60], edx
mov eax, dword [ebp - 0xbc]
and eax, 1
je 0x57fd50
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 0x60]
mov ecx, dword [ebp - 0xf0]
lea eax, [ecx + 0x16c]
call fcn.0057d440
mov edx, dword [ebp - 0xf4]
mov dword [edx + 0x60], eax
nop
mov eax, dword [ebp - 0xf0]
mov dword [eax + 0x10c], 0
mov dword [ebp - 0xc0], 4
jmp 0x58082c
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax + 0x1f0]
mov ecx, dword [ebp - 0x84]
mov eax, dword [edx + ecx*4]
add eax, dword [ebp - 0xcc]
mov dword [ebp - 0x98], eax
mov edx, eax
mov eax, dword [ebp - 0x14]
call fcn.0057b8a0
test al, al
jne 0x580c50
mov eax, dword [ebp - 0x14]
mov edx, 0xa
call fcn.0057b240
test al, al
jne 0x580c50
nop
mov eax, dword [ebp - 0x14]
call fcn.0057b340
movsx eax, ax
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x14]
call fcn.0057b340
movsx eax, ax
mov edx, dword [ebp - 0xf4]
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x14]
call fcn.0057b340
movsx eax, ax
mov edx, dword [ebp - 0xf4]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 0x14]
call fcn.0057b340
movsx eax, ax
mov edx, dword [ebp - 0xf4]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 0x14]
call fcn.0057b340
movsx eax, ax
mov edx, dword [ebp - 0xf4]
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 0x14]
call fcn.0057b2f0
mov eax, dword [ebp - 0xdc]
cmp eax, dword [ebp - 0xe0]
jge 0x57fe40
mov dword [0x62f3a0], 0x301
jmp 0x580bf4
mov ebx, dword [ebp - 0xf4]
mov eax, ebx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0x6c]
sub edx, eax
mov dword [ebx + 0x58], edx
mov dword [ebx + 0x5c], 0
mov eax, ebx
mov edx, dword [eax + 0x58]
mov eax, dword [eax + 0x68]
add eax, edx
mov dword [ebx + 0x60], eax
mov dword [ebx + 0x64], 0
mov eax, dword [ebp - 0xbc]
and eax, 1
je 0x57fea8
mov edx, dword [ebp - 0xf0]
lea eax, [edx + 0x16c]
mov edx, dword [ebx + 0x58]
call fcn.0057d440
mov dword [ebx + 0x58], eax
mov edx, dword [ebp - 0xf0]
lea eax, [edx + 0x16c]
mov edx, dword [ebx + 0x60]
call fcn.0057d440
mov dword [ebx + 0x60], eax
nop
cmp dword [ebp - 0xe0], 0
jl 0x57fec0
mov dword [ebp - 0xc0], 2
jmp 0x58082c
mov dword [ebp - 0xc0], 3
jmp 0x58082c
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0xf4]
cmp byte [eax + 5], 0
jne 0x57fef0
and dword [ebp - 0x8c], 0xfffffffd
nop
mov eax, dword [ebp - 0x8c]
and eax, 0x10
je 0x57ff0c
cmp dword [ebp - 0xec], 0
jle 0x57ff0c
and dword [ebp - 0x8c], 0xffffffef
nop
mov edx, dword [ebp - 0xd0]
mov ax, word [edx + 0xd8]
and ax, 2
je 0x57ff39
mov eax, dword [ebp - 0xf0]
lea edi, [eax + 0x90]
mov esi, 0x5c6660
mov ecx, 0x17
rep movsd dword es:[edi], dword [esi]
jmp 0x57ff58
mov eax, dword [ebp - 0xf0]
lea edi, [eax + 0x90]
mov eax, dword [ebp - 0xd0]
lea esi, [eax + 0x90]
mov ecx, 0x17
rep movsd dword es:[edi], dword [esi]
push dword [ebp - 0xdc]
push dword [ebp - 0xd8]
push dword [ebp - 0x8c]
push dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x14]
call fcn.0057f160
test al, al
jne 0x580bf4
mov edx, dword [ebp - 0xf0]
mov eax, dword [edx + 0x78]
sub eax, 2
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xc0], 4
jmp 0x58082c
mov eax, dword [ebp - 0xd4]
mov byte [eax + 0x4c], 1
add dword [ebp - 0xec], 1
mov eax, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xec]
cmp edx, dword [eax + 0x220]
jle 0x57ffe4
mov dword [0x62f3a0], 0x302
jmp 0x580bf4
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax + 0x104]
imul eax, dword [ebp - 0xec], 0x70
add eax, edx
mov dword [ebp - 0xc4], eax
mov edx, dword [ebp - 0xf4]
mov eax, dword [ebp - 0xc4]
xor ecx, ecx
call fcn.0057f970
mov eax, dword [ebp - 0xc4]
mov dword [eax], 0xffffffff
mov eax, dword [ebp - 0xf4]
mov dl, byte [eax + 5]
mov eax, dword [ebp - 0xc4]
mov byte [eax + 5], dl
mov eax, dword [ebp - 0x14]
mov edx, 4
call fcn.0057b240
test al, al
jne 0x580c50
lea esi, [esi]
mov eax, dword [ebp - 0x14]
call fcn.0057b370
and eax, 0xffff
mov dword [ebp - 0x8c], eax
mov edx, eax
mov eax, dword [ebp - 0xf4]
mov dword [eax + 0x38], edx
mov eax, dword [ebp - 0x14]
call fcn.0057b370
and eax, 0xffff
mov edx, dword [ebp - 0xc4]
mov dword [edx], eax
mov eax, dword [ebp - 0x14]
call fcn.0057b2f0
mov dword [ebp - 0x90], 2
mov eax, dword [ebp - 0x8c]
and eax, 1
je 0x5800a0
add dword [ebp - 0x90], 2
nop
mov eax, dword [ebp - 0x8c]
and eax, 8
je 0x5800b4
add dword [ebp - 0x90], 2
mov esi, esi
mov eax, dword [ebp - 0x8c]
and eax, 0x40
je 0x5800c8
add dword [ebp - 0x90], 4
mov esi, esi
mov eax, dword [ebp - 0x8c]
and eax, 0x80
je 0x5800dc
add dword [ebp - 0x90], 8
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x14]
call fcn.0057b240
test al, al
jne 0x580c50
mov esi, esi
mov eax, dword [ebp - 0x8c]
and eax, 1
je 0x580123
mov eax, dword [ebp - 0x14]
call fcn.0057b340
movsx eax, ax
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x14]
call fcn.0057b340
movsx eax, ax
mov dword [ebp - 0x88], eax
jmp 0x580145
mov eax, dword [ebp - 0x14]
call fcn.0057b330
movsx eax, al
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x14]
call fcn.0057b330
movsx eax, al
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x90]
mov edx, dword [ebp - 0xf4]
mov dword [edx + 0x30], eax
mov eax, dword [ebp - 0x88]
mov edx, dword [ebp - 0xf4]
mov dword [edx + 0x34], eax
mov eax, dword [ebp - 0x8c]
and eax, 2
je 0x58018c
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0xf4]
mov dword [eax + 0x4c], edx
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0xf4]
mov dword [eax + 0x50], edx
mov dword [ebp - 0xac], 0x10000
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa8], 0x10000
mov eax, dword [ebp - 0x8c]
and eax, 8
je 0x5801e8
mov eax, dword [ebp - 0x14]
call fcn.0057b340
movsx eax, ax
shl eax, 2
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xc4]
mov byte [eax + 4], 1
jmp 0x580290
mov eax, dword [ebp - 0x8c]
and eax, 0x40
je 0x580227
mov eax, dword [ebp - 0x14]
call fcn.0057b340
movsx eax, ax
shl eax, 2
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0x14]
call fcn.0057b340
movsx eax, ax
shl eax, 2
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xc4]
mov byte [eax + 4], 1
jmp 0x580290
mov eax, dword [ebp - 0x8c]
and eax, 0x80
je 0x580290
mov eax, dword [ebp - 0x14]
call fcn.0057b340
movsx eax, ax
shl eax, 2
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0x14]
call fcn.0057b340
movsx eax, ax
shl eax, 2
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x14]
call fcn.0057b340
movsx eax, ax
shl eax, 2
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x14]
call fcn.0057b340
movsx eax, ax
shl eax, 2
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xc4]
mov byte [eax + 4], 1
mov esi, esi
mov edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xf4]
mov dword [eax + 0x3c], edx
mov edx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0xf4]
mov dword [eax + 0x40], edx
mov eax, dword [ebp - 0xa4]
mov edx, dword [ebp - 0xf4]
mov dword [edx + 0x44], eax
mov eax, dword [ebp - 0xa8]
mov edx, dword [ebp - 0xf4]
mov dword [edx + 0x48], eax
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xac]
mov ecx, 0x10000
call fcn.0057ac10
mov ebx, eax
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xa0]
mov ecx, 0x10000
call fcn.0057ac10
sub ebx, eax
mov dword [ebp - 0xb8], ebx
mov eax, ebx
mov edx, eax
sar eax, 0x1f
xor edx, eax
sub edx, eax
cmp edx, 0x10000
je 0x580320
mov eax, dword [ebp - 0xc4]
mov byte [eax + 5], 0
nop
mov eax, dword [ebp - 0x14]
call fcn.0057b2f0
mov eax, dword [ebp - 0x14]
call fcn.0057b440
mov edx, dword [ebp - 0xf4]
mov dword [edx + 0x54], eax
mov dword [ebp - 0xc0], 1
jmp 0x58082c
cmp dword [ebp - 0xec], 0
jle 0x580820
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0xc4], eax
sub dword [ebp - 0xec], 1
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax + 0x104]
imul eax, dword [ebp - 0xec], 0x70
add eax, edx
mov dword [ebp - 0xf4], eax
cmp byte [eax + 6], 0
jne 0x580410
mov eax, dword [eax + 0x38]
and eax, 0x200
je 0x580410
mov eax, dword [ebp - 0xc4]
mov edx, dword [eax + 0x6c]
mov eax, dword [ebp - 0xf4]
mov dword [eax + 0x6c], edx
mov eax, dword [ebp - 0xc4]
mov edx, dword [eax + 0x68]
mov eax, dword [ebp - 0xf4]
mov dword [eax + 0x68], edx
mov eax, dword [ebp - 0xc4]
mov edx, dword [eax + 0x58]
mov eax, dword [ebp - 0xf4]
mov dword [eax + 0x58], edx
mov eax, dword [ebp - 0xc4]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0xf4]
mov dword [eax + 0x5c], edx
mov eax, dword [ebp - 0xc4]
mov edx, dword [eax + 0x60]
mov eax, dword [ebp - 0xf4]
mov dword [eax + 0x60], edx
mov eax, dword [ebp - 0xc4]
mov edx, dword [eax + 0x64]
mov eax, dword [ebp - 0xf4]
mov dword [eax + 0x64], edx
mov eax, dword [ebp - 0xf4]
mov byte [eax + 6], 1
lea esi, [esi]
mov edx, dword [ebp - 0xe8]
lea edi, [edx - 1]
test edi, edi
jl 0x580570
mov dword [ebp - 0x90], 0xffffffff
lea esi, [esi]
nop
add dword [ebp - 0x90], 1
mov esi, dword [ebp - 0xf4]
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax + 0x24]
mov edx, dword [ebp - 0x90]
mov eax, dword [ecx + edx*8]
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x90]
mov eax, dword [ecx + edx*8 + 4]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
mov ecx, 0x10000
mov edx, dword [esi + 0x3c]
call fcn.0057ac10
mov ebx, eax
mov eax, dword [ebp - 4]
mov ecx, 0x10000
mov edx, dword [esi + 0x44]
call fcn.0057ac10
add eax, ebx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
mov ecx, 0x10000
mov edx, dword [esi + 0x40]
call fcn.0057ac10
mov ebx, eax
mov eax, dword [ebp - 4]
mov ecx, 0x10000
mov edx, dword [esi + 0x48]
call fcn.0057ac10
add eax, ebx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax + 0x24]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x90]
mov dword [ecx + edx*8], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x90]
mov dword [ecx + edx*8 + 4], eax
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax + 0x20]
mov edx, dword [ebp - 0x90]
mov eax, dword [ecx + edx*8]
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x90]
mov eax, dword [ecx + edx*8 + 4]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
mov ecx, 0x10000
mov edx, dword [esi + 0x3c]
call fcn.0057ac10
mov ebx, eax
mov eax, dword [ebp - 4]
mov ecx, 0x10000
mov edx, dword [esi + 0x44]
call fcn.0057ac10
add eax, ebx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
mov ecx, 0x10000
mov edx, dword [esi + 0x40]
call fcn.0057ac10
mov ebx, eax
mov eax, dword [ebp - 4]
mov ecx, 0x10000
mov edx, dword [esi + 0x48]
call fcn.0057ac10
add eax, ebx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc4]
mov edx, dword [eax + 0x20]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x90]
mov dword [edx + eax*8], ecx
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x90]
mov dword [edx + eax*8 + 4], ecx
cmp edi, dword [ebp - 0x90]
jg 0x580430
lea esi, [esi]
mov eax, dword [ebp - 0xe0]
lea ecx, [eax - 1]
test ecx, ecx
jl 0x5805b4
mov dword [ebp - 0x90], 0xffffffff
nop
add dword [ebp - 0x90], 1
mov eax, dword [ebp - 0xc4]
mov ebx, dword [eax + 0x2c]
mov eax, dword [ebp - 0xf4]
mov dx, word [eax + 0x18]
mov eax, dword [ebp - 0x90]
add word [ebx + eax*2], dx
cmp ecx, dword [ebp - 0x90]
jg 0x580588
mov eax, dword [ebp - 0xe8]
mov edx, dword [ebp - 0xf4]
add dword [edx + 0x18], eax
mov eax, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xf4]
add dword [edx + 0x1c], eax
mov eax, dword [ebp - 0xd8]
sub eax, dword [ebp - 0xe8]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xdc]
sub eax, dword [ebp - 0xe0]
mov dword [ebp - 0xdc], eax
mov edx, dword [ebp - 0xf4]
mov eax, dword [edx + 0x38]
and eax, 2
jne 0x5806be
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0x34]
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x90], 0
jl 0x580657
mov edx, dword [ebp - 0xf4]
mov eax, dword [ebp - 0x90]
cmp eax, dword [edx + 0x18]
jge 0x580657
cmp dword [ebp - 0x88], 0
jl 0x580657
mov eax, dword [ebp - 0xe8]
cmp eax, dword [ebp - 0x88]
jg 0x580668
mov dword [0x62f3a0], 0x302
jmp 0x580bf4
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 0x18]
add dword [ebp - 0x88], edx
mov edx, dword [ebp - 0xf4]
mov edx, dword [edx + 0x24]
mov eax, dword [ebp - 0x90]
mov ecx, dword [edx + eax*8]
mov eax, dword [ebp - 0x88]
mov edx, dword [edx + eax*8]
sub ecx, edx
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0xf4]
mov edx, dword [edx + 0x24]
mov eax, dword [ebp - 0x90]
mov ebx, dword [edx + eax*8 + 4]
mov ecx, dword [ebp - 0x88]
mov eax, dword [edx + ecx*8 + 4]
sub ebx, eax
mov dword [ebp - 4], ebx
jmp 0x580738
mov edx, dword [ebp - 0xf4]
mov eax, dword [edx + 0x4c]
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0xf4]
mov eax, dword [edx + 0x50]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xbc]
and eax, 1
je 0x580738
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xf0]
lea eax, [ecx + 0x16c]
call fcn.0057d440
mov dword [ebp - 8], eax
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0xf0]
lea eax, [ecx + 0x16c]
call fcn.0057d460
mov dword [ebp - 4], eax
mov edx, dword [ebp - 0xf4]
mov eax, dword [edx + 0x38]
and eax, 4
je 0x580738
mov eax, dword [ebp - 8]
add eax, 0x20
and eax, 0xffffffc0
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
add eax, 0x20
and eax, 0xffffffc0
mov dword [ebp - 4], eax
lea esi, [esi]
push dword [ebp - 4]
mov eax, dword [ebp - 0xc4]
mov edx, dword [eax + 0x24]
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0xe8]
call fcn.0057f0c0
mov edx, dword [ebp - 0xc4]
add edx, 0x18
mov eax, dword [ebp - 0xe8]
call fcn.0057f040
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 0x54]
mov eax, dword [ebp - 0x14]
call fcn.0057b8a0
test al, al
jne 0x580c50
lea esi, [esi]
mov edx, dword [ebp - 0xf4]
mov eax, dword [edx + 0x38]
and eax, 0x20
je 0x5807bd
mov dword [ebp - 0xc0], 3
jmp 0x58082c
test dword [ebp - 0xec], 0xffffffff
jne 0x5807dd
mov eax, dword [ebp - 0xbc]
and eax, 0x10
je 0x5807dd
mov byte [ebp - 0x94], 1
jmp 0x5807e4
mov byte [ebp - 0x94], 0
push dword [ebp - 0xf0]
push dword [ebp - 0xf4]
push dword [ebp - 0x94]
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0x14]
call fcn.0057f6f0
test al, al
jne 0x580bf4
mov esi, esi
mov dword [ebp - 0xc0], 4
jmp 0x58082c
mov dword [ebp - 0xc0], 0
mov esi, esi
test dword [ebp - 0xc0], 0xffffffff
jne 0x57fbd8
mov eax, dword [ebp - 0xf0]
lea edi, [eax + 0x78]
lea esi, [ebp - 0x2c]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
add dword [ebp - 0xe8], 2
mov edx, dword [ebp - 0xe8]
lea ecx, [edx - 1]
test ecx, ecx
jl 0x5808e8
mov dword [ebp - 0x90], 0xffffffff
lea esi, [esi]
add dword [ebp - 0x90], 1
mov edx, dword [ebp - 0xd4]
add edx, 0x2c
mov eax, dword [ebp - 0xf0]
mov ebx, dword [eax + 0x84]
mov esi, dword [edx + 8]
mov eax, dword [ebp - 0x90]
mov edi, dword [ebx + eax*8]
mov eax, dword [ebp - 0x90]
mov dword [esi + eax*8], edi
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebx + eax*8 + 4]
mov eax, dword [ebp - 0x90]
mov dword [esi + eax*8 + 4], ebx
mov eax, dword [ebp - 0xf0]
mov ebx, dword [eax + 0x88]
mov esi, dword [edx + 0xc]
mov edi, dword [ebp - 0x90]
mov al, byte [ebx + edi]
mov ebx, dword [ebp - 0x90]
mov byte [esi + ebx], al
cmp ecx, dword [ebp - 0x90]
jg 0x580878
mov esi, esi
mov eax, dword [ebp - 0xe0]
lea ecx, [eax - 1]
test ecx, ecx
jl 0x58093c
mov dword [ebp - 0x90], 0xffffffff
nop
add dword [ebp - 0x90], 1
mov eax, dword [ebp - 0xd4]
lea ebx, [eax + 0x2c]
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax + 0x8c]
mov esi, dword [ebx + 0x10]
mov eax, dword [ebp - 0x90]
mov dx, word [edx + eax*2]
mov eax, dword [ebp - 0x90]
mov word [esi + eax*2], dx
cmp ecx, dword [ebp - 0x90]
jg 0x580900
nop
mov edx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xd4]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xd4]
mov dword [edx + 0x30], eax
mov eax, dword [ebp - 0xd4]
mov byte [eax + 0x42], 1
mov eax, dword [ebp - 0xd4]
lea edx, [eax + 4]
mov ecx, dword [ebp - 0xd4]
lea eax, [ecx + 0x2c]
mov ecx, 2
call fcn.00578480
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax + 0x58]
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax + 4]
sub edx, ecx
mov eax, dword [ebp - 0xd4]
mov dword [eax + 0x14], edx
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 0xd4]
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 0x60]
mov eax, dword [eax + 0x58]
sub edx, eax
mov eax, dword [ebp - 0xd4]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 0xd4]
mov dword [eax + 0x44], edx
mov eax, dword [ebp - 0xd4]
mov dword [eax + 0x48], 0xffffffff
mov eax, dword [ebp - 0xe4]
cmp byte [eax + 0xc4], 0
je 0x580a3d
cmp word [eax + 0x108], 0
jbe 0x580a3d
lea edi, [ebp - 0x80]
mov eax, dword [ebp - 0xe4]
lea esi, [eax + 0xc8]
mov ecx, 0x13
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], 0
lea eax, [ebp - 0x34]
push eax
movzx eax, word [ebp - 0xb4]
mov edx, eax
lea ecx, [ebp - 0x30]
lea eax, [ebp - 0x80]
call fcn.0057ef40
jmp 0x580a68
mov edx, dword [ebp - 0xe4]
lea ecx, [edx + 0x114]
mov edx, dword [ecx + 0x6c]
mov eax, edx
shr eax, 0x1f
add edx, eax
sar edx, 1
mov dword [ebp - 0x30], edx
mov edx, ecx
mov eax, dword [edx + 0x64]
mov ebx, dword [edx + 0x68]
sub eax, ebx
add eax, dword [edx + 0x6c]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0xbc]
and eax, 1
je 0x580aa4
mov edx, dword [ebp - 0xf0]
lea eax, [edx + 0x16c]
mov edx, dword [ebp - 0x30]
call fcn.0057d460
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0xf0]
lea eax, [edx + 0x16c]
mov edx, dword [ebp - 0x34]
call fcn.0057d460
mov dword [ebp - 0x34], eax
lea esi, [esi]
mov edx, dword [ebp - 0xd4]
add edx, 4
mov eax, edx
mov ecx, dword [eax]
mov eax, dword [eax + 8]
sub ecx, eax
mov eax, ecx
shr eax, 0x1f
add ecx, eax
sar ecx, 1
mov dword [edx + 0x1c], ecx
mov eax, dword [ebp - 0x30]
mov dword [edx + 0x20], eax
mov eax, dword [ebp - 0x34]
mov dword [edx + 0x24], eax
mov eax, dword [ebp - 0xbc]
and eax, 2
je 0x580af8
and dword [edx + 0x1c], 0xffffffc0
mov eax, dword [edx + 0x20]
add eax, 0x3f
and eax, 0xffffffc0
mov dword [edx + 0x20], eax
mov eax, dword [edx + 0x24]
add eax, 0x20
and eax, 0xffffffc0
mov dword [edx + 0x24], eax
lea esi, [esi]
mov eax, dword [ebp - 0xbc]
and eax, 3
cmp eax, 3
jne 0x580b58
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax + 4]
mov edx, dword [edx + 0x14]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ecx]
call fcn.0057eff0
mov dword [ebp - 0xb0], eax
test eax, eax
je 0x580b58
movzx eax, word [ebp - 0xb4]
mov ecx, dword [ebp - 0xb0]
movzx edx, byte [ecx + eax]
shl edx, 6
mov eax, dword [ebp - 0xd4]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 0xd4]
mov dword [eax + 0x48], edx
mov eax, dword [ebp - 0xf4]
cmp byte [eax + 5], 0
je 0x580bd8
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax + 4]
and edx, 0xffffffc0
mov eax, dword [ebp - 0xf4]
sub edx, dword [eax + 0x58]
mov eax, dword [ebp - 0xd4]
mov dword [eax + 0x14], edx
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx + 0x1c]
add eax, 0x20
and eax, 0xffffffc0
mov edx, dword [ebp - 0xd4]
mov dword [edx + 0x1c], eax
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx + 0x44]
add eax, 0x20
and eax, 0xffffffc0
mov edx, dword [ebp - 0xd4]
mov dword [edx + 0x44], eax
push 0
mov edx, dword [ebp - 0xf4]
mov eax, dword [edx + 0x58]
neg eax
mov ecx, eax
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax + 0x34]
mov eax, dword [ebp - 0xe8]
call fcn.0057f0c0
lea esi, [esi]
mov eax, dword [ebp - 0xf0]
mov dl, byte [eax + 0xdc]
mov eax, dword [ebp - 0xd4]
mov byte [eax + 0x43], dl
mov byte [ebp - 0x9c], 0
mov eax, dword [ebp - 0xe4]
push dword [eax]
call fcn.0057b220
mov eax, dword [ebp - 0xf0]
lea edi, [eax + 0x78]
lea esi, [ebp - 0x2c]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0xd0]
cmp byte [eax + 0x114], 0
je 0x580c43
mov eax, dword [ebp - 0xe8]
mov edx, dword [ebp - 0xf0]
mov dword [edx + 0x78], eax
mov edx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xf0]
mov dword [eax + 0x7c], edx
jmp 0x580c5c
mov eax, dword [ebp - 0xf0]
call fcn.0057c3a0
jmp 0x580c5c
mov dword [0x62f3a0], 0x11
jmp 0x580bf4
mov al, byte [ebp - 0x9c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4