Function at 0x47dfd0
Capabilities:
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x2b4]
sub esp, 0x334
mov eax, dword [0x577830]
xor eax, ebp
mov dword [ebp + 0x2b0], eax
push ebx
mov ebx, dword [ebp + 0x2bc]
cmp dword [ebx + 0x4b0], 0
push edi
lea edi, [ebx + 0x49c]
je 0x47e012
lea eax, [ebp - 0x59]
push eax
mov eax, 1
call fcn.00469830
jmp 0x47e02e
mov eax, dword [edi + 4]
test eax, eax
je 0x47e02c
push eax
push 1
lea ecx, [ebp - 0x59]
push 1
push ecx
call fcn.0052edba
add esp, 0x10
jmp 0x47e02e
xor eax, eax
cmp eax, 1
jne 0x47e04e
mov al, byte [ebp - 0x59]
cmp al, 0x38
je 0x47e076
cmp dword [edi + 0x14], 0
je 0x47e058
mov eax, dword [edi + 0x18]
cmp eax, 1
jb 0x47e04e
add eax, 0xffffffff
mov dword [edi + 0x18], eax
mov eax, 3
jmp 0x47e781
mov edi, dword [edi + 4]
test edi, edi
je 0x47e04e
movsx edx, al
push edi
push edx
call fcn.0051b7b3
add esp, 8
mov eax, 3
jmp 0x47e781
cmp dword [edi + 0x14], 0
je 0x47e08c
lea eax, [ebp - 0x59]
push eax
mov eax, 1
call fcn.00469830
jmp 0x47e0a8
mov eax, dword [edi + 4]
test eax, eax
je 0x47e0a6
push eax
push 1
lea ecx, [ebp - 0x59]
push 1
push ecx
call fcn.0052edba
add esp, 0x10
jmp 0x47e0a8
xor eax, eax
cmp eax, 1
jne 0x47e04e
mov al, byte [ebp - 0x59]
cmp al, 0x42
jne 0x47e03a
cmp dword [edi + 0x14], 0
je 0x47e0ca
lea eax, [ebp - 0x59]
push eax
mov eax, 1
call fcn.00469830
jmp 0x47e0e6
mov eax, dword [edi + 4]
test eax, eax
je 0x47e0e4
push eax
push 1
lea ecx, [ebp - 0x59]
push 1
push ecx
call fcn.0052edba
add esp, 0x10
jmp 0x47e0e6
xor eax, eax
cmp eax, 1
jne 0x47e04e
mov al, byte [ebp - 0x59]
cmp al, 0x50
jne 0x47e03a
cmp dword [edi + 0x14], 0
je 0x47e110
lea eax, [ebp - 0x59]
push eax
mov eax, 1
call fcn.00469830
jmp 0x47e12c
mov eax, dword [edi + 4]
test eax, eax
je 0x47e12a
push eax
push 1
lea ecx, [ebp - 0x59]
push 1
push ecx
call fcn.0052edba
add esp, 0x10
jmp 0x47e12c
xor eax, eax
cmp eax, 1
jne 0x47e04e
mov al, byte [ebp - 0x59]
cmp al, 0x53
jne 0x47e03a
cmp dword [edi + 0x14], 0
push esi
lea esi, [ebx + 4]
je 0x47e159
push esi
mov eax, 2
call fcn.00469830
shr eax, 1
jmp 0x47e172
mov eax, dword [edi + 4]
test eax, eax
je 0x47e170
push eax
push 1
push 2
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47e172
xor eax, eax
cmp eax, 1
jne 0x47e77b
mov ax, word [esi]
rol ax, 8
cmp ax, 1
mov word [esi], ax
jne 0x47e77b
cmp dword [edi + 0x14], 0
je 0x47e1a8
lea ecx, [ebp + 0x2a8]
push ecx
mov eax, 6
call fcn.00469830
jmp 0x47e1c7
mov eax, dword [edi + 4]
test eax, eax
je 0x47e1c5
push eax
push 6
lea edx, [ebp + 0x2a8]
push 1
push edx
call fcn.0052edba
add esp, 0x10
jmp 0x47e1c7
xor eax, eax
cmp eax, 6
jne 0x47e77b
cmp dword [edi + 0x14], 0
lea esi, [ebx + 6]
je 0x47e1e8
push esi
mov eax, 2
call fcn.00469830
shr eax, 1
jmp 0x47e201
mov eax, dword [edi + 4]
test eax, eax
je 0x47e1ff
push eax
push 1
push 2
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47e201
xor eax, eax
cmp eax, 1
jne 0x47e77b
mov ax, word [esi]
rol ax, 8
mov word [esi], ax
cmp dword [edi + 0x14], 0
lea esi, [ebx + 8]
je 0x47e22d
push esi
mov eax, 4
call fcn.00469830
shr eax, 2
jmp 0x47e246
mov eax, dword [edi + 4]
test eax, eax
je 0x47e244
push eax
push 1
push 4
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47e246
xor eax, eax
cmp eax, 1
jne 0x47e77b
mov eax, dword [esi]
rol eax, 0x10
mov ecx, eax
shr ecx, 8
mov edx, eax
shl edx, 8
xor ecx, edx
and ecx, 0xff00ff
shl eax, 8
xor ecx, eax
mov dword [esi], ecx
cmp dword [edi + 0x14], 0
lea esi, [ebx + 0xc]
je 0x47e286
push esi
mov eax, 4
call fcn.00469830
shr eax, 2
jmp 0x47e29f
mov eax, dword [edi + 4]
test eax, eax
je 0x47e29d
push eax
push 1
push 4
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47e29f
xor eax, eax
cmp eax, 1
jne 0x47e77b
mov eax, dword [esi]
rol eax, 0x10
mov ecx, eax
shr ecx, 8
mov edx, eax
shl edx, 8
xor ecx, edx
and ecx, 0xff00ff
shl eax, 8
xor ecx, eax
mov dword [esi], ecx
cmp dword [edi + 0x14], 0
lea esi, [ebx + 0x10]
je 0x47e2de
push esi
mov eax, 2
call fcn.00469830
shr eax, 1
jmp 0x47e2f7
mov eax, dword [edi + 4]
test eax, eax
je 0x47e2f5
push eax
push 1
push 2
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47e2f7
xor eax, eax
cmp eax, 1
jne 0x47e77b
mov ax, word [esi]
rol ax, 8
mov word [esi], ax
cmp dword [edi + 0x14], 0
lea esi, [ebx + 0x12]
je 0x47e322
push esi
mov eax, 2
call fcn.00469830
shr eax, 1
jmp 0x47e33b
mov eax, dword [edi + 4]
test eax, eax
je 0x47e339
push eax
push 1
push 2
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47e33b
xor eax, eax
cmp eax, 1
jne 0x47e77b
mov cx, word [esi]
rol cx, 8
mov word [esi], cx
shr word [ebx + 0x10], 3
movzx eax, word [ebx + 0x10]
cmp ax, 1
jae 0x47e363
mov word [ebx + 0x10], 1
movzx eax, word [esi]
cmp ax, 3
je 0x47e376
cmp ax, 2
jne 0x47e77b
cmp dword [edi + 0x14], 0
lea esi, [ebx + 0x14]
je 0x47e38f
push esi
mov eax, 4
call fcn.00469830
shr eax, 2
jmp 0x47e3a8
mov eax, dword [edi + 4]
test eax, eax
je 0x47e3a6
push eax
push 1
push 4
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47e3a8
xor eax, eax
cmp eax, 1
jne 0x47e77b
mov eax, dword [esi]
rol eax, 0x10
mov edx, eax
shr edx, 8
mov ecx, eax
shl ecx, 8
xor edx, ecx
and edx, 0xff00ff
shl eax, 8
xor edx, eax
mov dword [esi], edx
mov esi, edx
test esi, esi
je 0x47e672
cmp esi, 0x300
jne 0x47e77b
cmp dword [edi + 0x14], 0
je 0x47e3f8
lea edx, [ebp - 0x58]
push edx
mov eax, esi
call fcn.00469830
jmp 0x47e417
mov edi, dword [edi + 4]
test edi, edi
je 0x47e415
push edi
push 0x300
lea eax, [ebp - 0x58]
push 1
push eax
call fcn.0052edba
add esp, 0x10
jmp 0x47e417
xor eax, eax
cmp eax, 0x300
jne 0x47e77b
cmp byte [0x59e12f], 0
mov edx, 0x100
mov ecx, 0xff000000
lea eax, [ebx + 0x98]
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x60], eax
jne 0x47e45d
cmp byte [0x59e130], 0
jne 0x47e45d
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x7c]
mov edi, dword [ebp - 0x60]
rep stosd dword es:[edi], eax
jmp 0x47e505
mov esi, eax
and esi, 3
je 0x47e488
mov edx, 4
sub edx, esi
je 0x47e480
lea ecx, [ecx]
mov byte [eax], cl
add eax, 1
ror ecx, 8
sub edx, 1
jne 0x47e470
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x60], eax
mov edx, 0xff
test al, 0xf
je 0x47e4a6
lea esp, [esp]
test edx, edx
je 0x47e4f2
mov dword [eax], ecx
mov eax, dword [ebp - 0x60]
add eax, 4
sub edx, 1
test al, 0xf
mov dword [ebp - 0x60], eax
jne 0x47e490
test edx, edx
je 0x47e4f2
mov eax, edx
shr eax, 2
mov dword [ebp - 0x64], eax
movss xmm0, dword [ebp - 0x7c]
mov edi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x64]
punpckldq xmm0, xmm0
punpcklqdq xmm0, xmm0
test eax, eax
je 0x47e4d5
movdqa xmmword [edi], xmm0
add edi, 0x10
dec dword [ebp - 0x64]
jg 0x47e4c9
mov dword [ebp - 0x60], edi
and edx, 3
mov eax, dword [ebp - 0x60]
je 0x47e4f2
mov dword [eax], ecx
mov eax, dword [ebp - 0x60]
sub edx, 1
add eax, 4
test edx, edx
mov dword [ebp - 0x60], eax
jne 0x47e4e0
test esi, esi
jbe 0x47e505
mov edx, esi
mov byte [eax], cl
add eax, 1
ror ecx, 8
sub edx, 1
jne 0x47e4f8
xor ecx, ecx
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x60], 5
mov dword [ebp - 0x64], 4
lea edi, [ecx + 3]
lea edx, [ecx + 2]
lea eax, [ecx + 1]
mov esi, ecx
and esi, 0xff
lea esi, [ebx + esi*4 + 0x98]
mov dword [ebp - 0x68], esi
mov esi, ecx
shr esi, 8
mov ecx, 2
sub ecx, esi
add ecx, ecx
add ecx, ecx
add ecx, ecx
movzx esi, byte [ebp + eax - 0x59]
shl esi, cl
mov ecx, dword [ebp - 0x68]
or dword [ecx], esi
mov ecx, eax
and ecx, 0xff
lea ecx, [ebx + ecx*4 + 0x98]
mov dword [ebp - 0x68], ecx
mov esi, eax
shr esi, 8
mov ecx, 2
sub ecx, esi
movzx esi, byte [ebp + eax - 0x58]
add ecx, ecx
add ecx, ecx
add ecx, ecx
shl esi, cl
mov ecx, dword [ebp - 0x68]
or dword [ecx], esi
mov ecx, edx
and ecx, 0xff
lea ecx, [ebx + ecx*4 + 0x98]
mov dword [ebp - 0x68], ecx
mov esi, edx
shr esi, 8
mov ecx, 2
sub ecx, esi
movzx esi, byte [ebp + edx - 0x58]
add ecx, ecx
add ecx, ecx
add ecx, ecx
shl esi, cl
mov ecx, dword [ebp - 0x68]
or dword [ecx], esi
mov ecx, edi
and ecx, 0xff
lea ecx, [ebx + ecx*4 + 0x98]
mov dword [ebp - 0x68], ecx
mov esi, edi
shr esi, 8
mov ecx, 2
sub ecx, esi
movzx esi, byte [ebp + edi - 0x58]
add ecx, ecx
add ecx, ecx
add ecx, ecx
shl esi, cl
mov ecx, dword [ebp - 0x68]
or dword [ecx], esi
mov ecx, dword [ebp - 0x64]
mov esi, ecx
and esi, 0xff
lea esi, [ebx + esi*4 + 0x98]
mov dword [ebp - 0x68], esi
mov esi, ecx
shr esi, 8
mov ecx, 2
sub ecx, esi
mov esi, dword [ebp - 0x64]
movzx esi, byte [ebp + esi - 0x58]
add ecx, ecx
add ecx, ecx
add ecx, ecx
shl esi, cl
mov ecx, dword [ebp - 0x68]
or dword [ecx], esi
mov ecx, dword [ebp - 0x60]
mov esi, ecx
and esi, 0xff
lea esi, [ebx + esi*4 + 0x98]
add dword [ebp - 0x64], 6
mov dword [ebp - 0x68], esi
mov esi, ecx
shr esi, 8
mov ecx, 2
sub ecx, esi
mov esi, dword [ebp - 0x60]
movzx esi, byte [ebp + esi - 0x58]
add dword [ebp - 0x60], 6
add ecx, ecx
add ecx, ecx
add ecx, ecx
shl esi, cl
mov ecx, dword [ebp - 0x68]
add eax, 6
add edx, 6
or dword [ecx], esi
mov ecx, dword [ebp - 0x6c]
add ecx, 6
add edi, 6
cmp eax, 0x301
mov dword [ebp - 0x6c], ecx
jb 0x47e521
cmp dword [ebx + 0x4b0], 0
lea edi, [ebx + 0x49c]
lea esi, [ebx + 0x24]
je 0x47e694
push esi
mov eax, 4
call fcn.00469830
shr eax, 2
jmp 0x47e6ad
mov eax, dword [edi + 4]
test eax, eax
je 0x47e6ab
push eax
push 1
push 4
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47e6ad
xor eax, eax
cmp eax, 1
jne 0x47e77b
mov eax, dword [esi]
rol eax, 0x10
mov edx, eax
shr edx, 8
mov ecx, eax
shl ecx, 8
xor edx, ecx
and edx, 0xff00ff
shl eax, 8
xor edx, eax
cmp byte [ebp + 0x2c0], 0
mov dword [esi], edx
je 0x47e70f
cmp dword [edi + 0x14], 0
mov esi, edx
je 0x47e6fb
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x1c]
add eax, esi
cmp ecx, eax
ja 0x47e6f3
mov eax, ecx
mov dword [edi + 0x18], eax
jmp 0x47e7a1
mov edx, dword [edi + 4]
push 1
push esi
push edx
call fcn.005303b8
add esp, 0xc
jmp 0x47e7a1
mov eax, edi
call fcn.00469880
mov dword [ebp - 0x64], eax
xor eax, eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x74], eax
mov eax, edi
mov word [ebp - 0x7c], 0xffff
call fcn.00469880
mov ecx, dword [esi]
add ecx, dword [ebp - 0x64]
cmp eax, ecx
jae 0x47e763
lea ebx, [ebx]
push 0
lea edx, [ebp - 0x7c]
push edx
push edi
call fcn.0047b800
add esp, 0xc
test eax, eax
jne 0x47e763
mov eax, edi
call fcn.00469880
mov ecx, dword [esi]
add ecx, dword [ebp - 0x64]
cmp eax, ecx
jb 0x47e740
mov eax, edi
call fcn.00469880
mov edx, dword [esi]
add edx, dword [ebp - 0x64]
lea esi, [ebp - 0x7c]
cmp eax, edx
je 0x47e79c
call fcn.0047ed20
mov eax, 3
pop esi
mov ecx, dword [ebp + 0x2b0]
pop edi
xor ecx, ebp
pop ebx
call fcn.005120db
add ebp, 0x2b4
mov esp, ebp
pop ebp
ret 8
call fcn.0047ed20
cmp dword [ebx + 0x4b0], 0
lea edi, [ebx + 0x49c]
je 0x47e7c3
lea eax, [ebx + 0x24]
push eax
mov eax, 4
call fcn.00469830
shr eax, 2
jmp 0x47e7df
mov eax, dword [edi + 4]
test eax, eax
je 0x47e7dd
push eax
push 1
lea eax, [ebx + 0x24]
push 4
push eax
call fcn.0052edba
add esp, 0x10
jmp 0x47e7df
xor eax, eax
cmp eax, 1
jne 0x47e77b
mov eax, dword [ebx + 0x24]
rol eax, 0x10
mov ecx, eax
shr ecx, 8
mov edx, eax
shl edx, 8
xor ecx, edx
and ecx, 0xff00ff
shl eax, 8
xor ecx, eax
cmp byte [ebp + 0x2c0], 0
mov dword [ebx + 0x24], ecx
je 0x47e845
test ecx, ecx
je 0x47eab6
cmp dword [edi + 0x14], 0
je 0x47e831
mov eax, dword [edi + 0x18]
add eax, ecx
mov ecx, dword [edi + 0x1c]
cmp ecx, eax
ja 0x47e829
mov eax, ecx
mov dword [edi + 0x18], eax
jmp 0x47eab6
mov eax, dword [edi + 4]
push 1
push ecx
push eax
call fcn.005303b8
add esp, 0xc
jmp 0x47eab6
test ecx, ecx
je 0x47eab6
mov eax, edi
call fcn.00469880
add eax, dword [ebx + 0x24]
cmp dword [edi + 0x14], 0
mov dword [ebp - 0x80], eax
lea esi, [ebx + 0x1c]
je 0x47e873
push esi
mov eax, 4
call fcn.00469830
shr eax, 2
jmp 0x47e88c
mov eax, dword [edi + 4]
test eax, eax
je 0x47e88a
push eax
push 1
push 4
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47e88c
xor eax, eax
cmp eax, 1
jne 0x47e77b
mov eax, dword [esi]
rol eax, 0x10
mov ecx, eax
shr ecx, 8
mov edx, eax
shl edx, 8
xor ecx, edx
and ecx, 0xff00ff
shl eax, 8
xor ecx, eax
mov dword [esi], ecx
cmp dword [edi + 0x14], 0
lea esi, [ebx + 0x20]
je 0x47e8cb
push esi
mov eax, 2
call fcn.00469830
shr eax, 1
jmp 0x47e8e4
mov edi, dword [edi + 4]
test edi, edi
je 0x47e8e2
push edi
push 1
push 2
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47e8e4
xor eax, eax
cmp eax, 1
jne 0x47e77b
mov ax, word [esi]
rol ax, 8
mov word [esi], ax
movsx eax, ax
cdq
mov esi, eax
xor esi, edx
sub esi, edx
cmp esi, 0x13b13b1
mov dword [ebp - 0x60], esi
jbe 0x47e931
mov ecx, dword [ebx + 0x90]
test ecx, ecx
je 0x47e91b
call fcn.0047f2b0
and dword [ebx + 0x94], 1
mov dword [ebx + 0x90], 0
jmp 0x47ea29
mov eax, dword [ebx + 0x94]
mov ecx, eax
shr eax, 1
and ecx, 1
cmp esi, eax
je 0x47ea29
test ecx, ecx
je 0x47eb41
test esi, esi
mov dword [ebp - 0x6c], 0
je 0x47e9f0
xor ecx, ecx
mov eax, esi
mov edx, 0x68
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.00511d1c
add esp, 4
test eax, eax
je 0x47eb29
lea edi, [eax + 4]
push 0x47b6f0
mov dword [eax], esi
push 0x68
mov eax, esi
mov ecx, edi
call fcn.00407e00
test edi, edi
mov dword [ebp - 0x6c], edi
je 0x47eb29
mov eax, dword [ebx + 0x94]
shr eax, 1
cmp eax, esi
ja 0x47e9ba
mov esi, eax
test esi, esi
jbe 0x47e9f0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x68], esi
jmp 0x47e9d0
mov eax, dword [ebp - 0x64]
mov esi, dword [ebx + 0x90]
mov ecx, dword [ebp - 0x6c]
add esi, eax
lea edi, [ecx + eax]
call fcn.0047f3e0
add dword [ebp - 0x64], 0x68
sub dword [ebp - 0x68], 1
jne 0x47e9d0
mov ecx, dword [ebx + 0x90]
test ecx, ecx
je 0x47e9ff
call fcn.0047f2b0
mov eax, dword [ebp - 0x6c]
test eax, eax
mov dword [ebx + 0x90], eax
je 0x47ec83
mov eax, dword [ebp - 0x60]
mov edx, dword [ebx + 0x94]
lea ecx, [eax + eax]
and edx, 1
or edx, ecx
mov esi, eax
mov dword [ebx + 0x94], edx
xor edi, edi
cmp esi, edi
mov dword [ebp - 0x64], edi
jle 0x47ea58
mov ecx, dword [ebx + 0x90]
add ecx, edi
push ebx
call fcn.0047bd90
test eax, eax
jne 0x47e780
mov eax, dword [ebp - 0x64]
add eax, 1
add edi, 0x68
cmp eax, esi
mov dword [ebp - 0x64], eax
jl 0x47ea32
test esi, esi
mov dword [ebp - 0x64], 0
jle 0x47ea8e
xor edi, edi
mov eax, dword [ebx + 0x90]
add eax, edi
push eax
mov esi, ebx
call fcn.0047d030
test eax, eax
jne 0x47e780
mov eax, dword [ebp - 0x64]
add eax, 1
add edi, 0x68
cmp eax, dword [ebp - 0x60]
mov dword [ebp - 0x64], eax
jl 0x47ea65
lea edi, [ebx + 0x49c]
mov eax, edi
call fcn.00469880
mov edx, dword [ebp - 0x80]
cmp eax, edx
je 0x47eaa9
mov eax, edi
call fcn.004709e0
movsx eax, word [ebx + 0x20]
cdq
xor eax, edx
sub eax, edx
mov word [ebx + 0x20], ax
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
mov cx, word [ebx + 6]
xor esi, esi
mov dword [ebx + 0x30], eax
mov eax, edi
mov dword [ebx + 0x2c], esi
mov dword [ebx + 0x28], esi
mov dword [ebx + 0x34], edx
mov word [ebx + 0x38], cx
call fcn.00469880
xor edi, edi
cmp word [ebx + 6], si
mov dword [ebx + 0x8c], eax
jbe 0x47ed16
jmp 0x47eaf0
mov ecx, dword [ebx + 0x40]
test cl, 1
jne 0x47ed04
shr ecx, 1
lea edx, [ecx + ecx]
cmp edx, 0x100000
mov eax, ecx
jae 0x47eca3
lea esi, [ecx - 1]
test ecx, esi
jne 0x47ecad
test ecx, ecx
je 0x47ec9c
mov eax, edx
jmp 0x47ecad
mov ecx, dword [ebx + 0x90]
test ecx, ecx
je 0x47ec86
call fcn.0047f2b0
jmp 0x47ec86
mov edx, esi
imul edx, edx, 0x68
cmp edx, 0x100000
jae 0x47eb5f
mov edi, 1
cmp esi, edi
jb 0x47eb6d
add edi, edi
cmp edi, esi
jbe 0x47eb57
jmp 0x47eb6d
mov edi, esi
and edi, 0xfffffc00
add edi, 0x400
mov ecx, eax
imul ecx, ecx, 0x68
cmp ecx, 0x100000
jae 0x47ebae
cmp eax, 1
mov edx, eax
jbe 0x47ebaa
test edx, edx
mov dword [ebp - 0x68], edx
fild dword [ebp - 0x68]
jge 0x47eb91
fadd dword [0x567d50]
fstp dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
shr ecx, 0x17
sub ecx, 0x7f
mov edx, 1
shl edx, cl
cmp edx, eax
jae 0x47ebaa
add edx, edx
mov eax, edx
jmp 0x47ebb8
and eax, 0x7ffffc00
add eax, 0x400
cmp eax, edi
je 0x47ea10
test edi, edi
mov dword [ebp - 0x64], 0
je 0x47ec52
xor ecx, ecx
mov eax, edi
mov edx, 0x68
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.00511d1c
add esp, 4
test eax, eax
je 0x47ec74
lea esi, [eax + 4]
push 0x47b6f0
mov dword [eax], edi
push 0x68
mov eax, edi
mov ecx, esi
call fcn.00407e00
test esi, esi
mov dword [ebp - 0x64], esi
je 0x47ec74
mov eax, dword [ebx + 0x94]
shr eax, 1
cmp eax, edi
jbe 0x47ec24
mov eax, edi
test eax, eax
jbe 0x47ec52
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x6c]
mov esi, dword [ebx + 0x90]
mov ecx, dword [ebp - 0x64]
add esi, eax
lea edi, [ecx + eax]
call fcn.0047f3e0
add dword [ebp - 0x6c], 0x68
sub dword [ebp - 0x68], 1
jne 0x47ec32
mov ecx, dword [ebx + 0x90]
test ecx, ecx
je 0x47ec61
call fcn.0047f2b0
mov eax, dword [ebp - 0x64]
test eax, eax
mov dword [ebx + 0x90], eax
jne 0x47ea10
jmp 0x47ec83
mov ecx, dword [ebx + 0x90]
test ecx, ecx
je 0x47ec83
call fcn.0047f2b0
mov esi, dword [ebp - 0x60]
and dword [ebx + 0x94], 1
mov dword [ebx + 0x90], 0
jmp 0x47ea29
mov eax, 1
jmp 0x47ecad
and eax, 0x7ffffc00
add eax, 0x400
cmp eax, ecx
jbe 0x47ece1
test eax, eax
je 0x47ecca
lea edx, [eax + eax]
mov eax, dword [ebx + 0x3c]
push edx
push eax
call fcn.0044d0b0
add esp, 8
mov dword [ebx + 0x3c], eax
jmp 0x47ece1
mov eax, dword [ebx + 0x3c]
test eax, eax
je 0x47ece1
push eax
call fcn.0044d390
add esp, 4
mov dword [ebx + 0x3c], 0
mov eax, dword [ebx + 0x3c]
test eax, eax
je 0x47ed04
mov ecx, dword [ebx + 0x40]
shr ecx, 1
mov word [eax + ecx*2], di
mov eax, dword [ebx + 0x40]
mov edx, eax
and edx, 0xfffffffe
add edx, 2
and eax, 1
xor edx, eax
mov dword [ebx + 0x40], edx
movzx ecx, word [ebx + 6]
add edi, 1
movsx eax, di
cmp eax, ecx
jl 0x47eaf0
xor eax, eax
jmp 0x47e780