Function at 0x47bd90
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x138
mov eax, dword [0x577830]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
add ebx, 0x49c
cmp dword [ebx + 0x14], 0
push edi
mov dword [ebp - 0x120], esi
lea ecx, [esi + 4]
je 0x47bdd5
lea eax, [esi + 4]
push eax
mov eax, 4
mov edi, ebx
call fcn.00469830
shr eax, 2
jmp 0x47bdee
mov eax, dword [ebx + 4]
test eax, eax
je 0x47bdec
push eax
push 1
push 4
push ecx
call fcn.0052edba
add esp, 0x10
jmp 0x47bdee
xor eax, eax
cmp eax, 1
jne 0x47c433
mov eax, dword [esi + 4]
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 + 4], ecx
cmp dword [ebx + 0x14], 0
je 0x47be2f
push esi
mov eax, 4
mov edi, ebx
call fcn.00469830
shr eax, 2
jmp 0x47be48
mov eax, dword [ebx + 4]
test eax, eax
je 0x47be46
push eax
push 1
push 4
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47be48
xor eax, eax
cmp eax, 1
jne 0x47c433
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 [ebx + 0x14], 0
lea ecx, [esi + 0xc]
je 0x47be8d
lea eax, [esi + 0xc]
push eax
mov eax, 4
mov edi, ebx
call fcn.00469830
shr eax, 2
jmp 0x47bea6
mov eax, dword [ebx + 4]
test eax, eax
je 0x47bea4
push eax
push 1
push 4
push ecx
call fcn.0052edba
add esp, 0x10
jmp 0x47bea6
xor eax, eax
cmp eax, 1
jne 0x47c433
mov eax, dword [esi + 0xc]
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 + 0xc], ecx
cmp dword [ebx + 0x14], 0
lea ecx, [esi + 8]
je 0x47beed
lea eax, [esi + 8]
push eax
mov eax, 4
mov edi, ebx
call fcn.00469830
shr eax, 2
jmp 0x47bf06
mov eax, dword [ebx + 4]
test eax, eax
je 0x47bf04
push eax
push 1
push 4
push ecx
call fcn.0052edba
add esp, 0x10
jmp 0x47bf06
xor eax, eax
cmp eax, 1
jne 0x47c433
mov eax, dword [esi + 8]
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 + 8], ecx
cmp dword [ebx + 0x14], 0
lea ecx, [esi + 0x10]
je 0x47bf4c
lea eax, [esi + 0x10]
push eax
mov eax, 2
mov edi, ebx
call fcn.00469830
shr eax, 1
jmp 0x47bf65
mov eax, dword [ebx + 4]
test eax, eax
je 0x47bf63
push eax
push 1
push 2
push ecx
call fcn.0052edba
add esp, 0x10
jmp 0x47bf65
xor eax, eax
cmp eax, 1
jne 0x47c433
mov ax, word [esi + 0x10]
rol ax, 8
movzx edi, ax
cmp edi, 0x3fffffff
mov word [esi + 0x10], ax
mov dword [ebp - 0x12c], edi
jbe 0x47bfab
mov eax, dword [esi + 0x14]
test eax, eax
je 0x47bf9b
push eax
call fcn.0044d390
add esp, 4
and dword [esi + 0x18], 1
mov dword [esi + 0x14], 0
jmp 0x47c126
mov eax, dword [esi + 0x18]
mov ecx, eax
shr eax, 1
and ecx, 1
cmp edi, eax
je 0x47c126
test ecx, ecx
je 0x47c026
test edi, edi
je 0x47bfec
mov edx, dword [esi + 0x14]
lea ecx, [edi + edi]
push ecx
push edx
call fcn.0044d0b0
add esp, 8
test eax, eax
mov dword [esi + 0x14], eax
jne 0x47c013
and dword [esi + 0x18], 1
mov dword [esi + 0x14], 0
jmp 0x47c126
mov eax, dword [esi + 0x14]
test eax, eax
je 0x47bfdc
push eax
call fcn.0044d390
add esp, 4
and dword [esi + 0x18], 1
mov dword [esi + 0x14], 0
mov dword [esi + 0x14], 0
jmp 0x47c126
mov eax, dword [esi + 0x18]
and eax, 1
lea ecx, [edi + edi]
or eax, ecx
mov dword [esi + 0x18], eax
jmp 0x47c126
lea edx, [edi + edi]
cmp edx, 0x100000
jae 0x47c048
mov edx, 1
cmp edi, edx
jb 0x47c056
lea ebx, [ebx]
add edx, edx
cmp edx, edi
jbe 0x47c040
jmp 0x47c056
mov edx, edi
and edx, 0xfffffc00
add edx, 0x400
lea ecx, [eax + eax]
cmp ecx, 0x100000
jae 0x47c0c2
cmp eax, 1
jbe 0x47c0ba
mov ecx, eax
test ecx, ecx
mov dword [ebp - 0x128], ecx
fild dword [ebp - 0x128]
jge 0x47c07e
fadd dword [0x567d50]
fstp dword [ebp - 0x128]
mov edi, 1
mov ecx, dword [ebp - 0x128]
shr ecx, 0x17
sub ecx, 0x7f
shl edi, cl
cmp edi, eax
mov dword [ebp - 0x118], edi
jae 0x47c0ac
mov eax, edi
lea ecx, [eax + eax]
mov dword [ebp - 0x118], ecx
mov edi, dword [ebp - 0x12c]
mov eax, dword [ebp - 0x118]
jmp 0x47c0cc
mov dword [ebp - 0x118], eax
jmp 0x47c0cc
and eax, 0x7ffffc00
add eax, 0x400
cmp eax, edx
je 0x47c118
test edx, edx
mov eax, dword [esi + 0x14]
je 0x47c0f7
add edx, edx
push edx
push eax
call fcn.0044d0b0
add esp, 8
test eax, eax
mov dword [esi + 0x14], eax
jne 0x47c118
and dword [esi + 0x18], 1
mov dword [esi + 0x14], 0
jmp 0x47c126
test eax, eax
je 0x47c0ea
push eax
call fcn.0044d390
add esp, 4
and dword [esi + 0x18], 1
mov dword [esi + 0x14], 0
mov dword [esi + 0x14], 0
jmp 0x47c126
mov ecx, dword [esi + 0x18]
and ecx, 1
lea edx, [edi + edi]
or ecx, edx
mov dword [esi + 0x18], ecx
movzx edi, word [esi + 0x10]
cmp edi, 0x1fffffff
mov dword [ebp - 0x128], edi
jbe 0x47c158
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x47c148
push eax
call fcn.0044d390
add esp, 4
and dword [esi + 0x20], 1
mov dword [esi + 0x1c], 0
jmp 0x47c2bb
mov eax, dword [esi + 0x20]
mov ecx, eax
shr eax, 1
and ecx, 1
cmp edi, eax
je 0x47c2bb
test ecx, ecx
je 0x47c1cc
test edi, edi
je 0x47c19d
mov ecx, dword [esi + 0x1c]
lea eax, [edi*4]
push eax
push ecx
call fcn.0044d0b0
add esp, 8
test eax, eax
mov dword [esi + 0x1c], eax
jne 0x47c1c4
and dword [esi + 0x20], 1
mov dword [esi + 0x1c], 0
jmp 0x47c2bb
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x47c18d
push eax
call fcn.0044d390
add esp, 4
and dword [esi + 0x20], 1
mov dword [esi + 0x1c], 0
mov dword [esi + 0x1c], 0
jmp 0x47c2bb
lea edx, [edi + edi]
jmp 0x47c2b0
lea ecx, [edi*4]
cmp ecx, 0x100000
jae 0x47c1ec
mov edx, 1
cmp edi, edx
jb 0x47c1fa
add edx, edx
cmp edx, edi
jbe 0x47c1e4
jmp 0x47c1fa
mov edx, edi
and edx, 0xfffffc00
add edx, 0x400
lea ecx, [eax*4]
cmp ecx, 0x100000
jae 0x47c24f
cmp eax, 1
jbe 0x47c249
mov ecx, eax
test ecx, ecx
mov dword [ebp - 0x12c], ecx
fild dword [ebp - 0x12c]
jge 0x47c226
fadd dword [0x567d50]
fstp dword [ebp - 0x12c]
mov edi, 1
mov ecx, dword [ebp - 0x12c]
shr ecx, 0x17
sub ecx, 0x7f
shl edi, cl
cmp edi, eax
jae 0x47c24b
add edi, edi
mov eax, edi
jmp 0x47c259
mov edi, eax
mov eax, edi
jmp 0x47c259
and eax, 0x7ffffc00
add eax, 0x400
cmp eax, edx
je 0x47c2a7
test edx, edx
mov eax, dword [esi + 0x1c]
je 0x47c286
add edx, edx
add edx, edx
push edx
push eax
call fcn.0044d0b0
add esp, 8
test eax, eax
mov dword [esi + 0x1c], eax
jne 0x47c2a7
and dword [esi + 0x20], 1
mov dword [esi + 0x1c], 0
jmp 0x47c2bb
test eax, eax
je 0x47c279
push eax
call fcn.0044d390
add esp, 4
and dword [esi + 0x20], 1
mov dword [esi + 0x1c], 0
mov dword [esi + 0x1c], 0
jmp 0x47c2bb
mov ecx, dword [ebp - 0x128]
lea edx, [ecx + ecx]
mov eax, dword [esi + 0x20]
and eax, 1
or edx, eax
mov dword [esi + 0x20], edx
add esi, 0x10
cmp word [esi], 0
mov dword [ebp - 0x118], 0
jbe 0x47c3d6
jmp 0x47c2e0
mov edi, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x120]
mov esi, dword [ecx + 0x14]
lea eax, [edi + edi]
add esi, eax
cmp dword [ebx + 0x14], 0
je 0x47c311
push esi
mov eax, 2
mov edi, ebx
call fcn.00469830
mov edi, dword [ebp - 0x118]
shr eax, 1
jmp 0x47c32a
mov eax, dword [ebx + 4]
test eax, eax
je 0x47c328
push eax
push 1
push 2
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47c32a
xor eax, eax
cmp eax, 1
jne 0x47c433
mov dx, word [esi]
mov ecx, dword [ebp - 0x120]
rol dx, 8
mov word [esi], dx
mov eax, dword [ecx + 0x14]
cmp word [eax + edi*2], 0xffff
lea eax, [eax + edi*2]
jne 0x47c355
mov word [eax], 3
cmp dword [ebx + 0x14], 0
mov ecx, dword [ecx + 0x1c]
lea esi, [ecx + edi*4]
je 0x47c373
push esi
mov eax, 4
mov edi, ebx
call fcn.00469830
shr eax, 2
jmp 0x47c38c
mov eax, dword [ebx + 4]
test eax, eax
je 0x47c38a
push eax
push 1
push 4
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47c38c
xor eax, eax
cmp eax, 1
jne 0x47c433
mov eax, dword [esi]
rol eax, 0x10
mov edx, eax
mov ecx, eax
shr edx, 8
shl ecx, 8
xor edx, ecx
mov ecx, dword [ebp - 0x120]
shl eax, 8
and edx, 0xff00ff
xor edx, eax
mov eax, dword [ebp - 0x118]
add ecx, 0x10
mov dword [esi], edx
movzx edx, word [ecx]
add eax, 1
cmp eax, edx
mov dword [ebp - 0x118], eax
jb 0x47c2e0
cmp dword [ebx + 0x14], 0
je 0x47c3f1
lea eax, [ebp - 0x111]
push eax
mov eax, 1
mov edi, ebx
call fcn.00469830
jmp 0x47c410
mov eax, dword [ebx + 4]
test eax, eax
je 0x47c40e
push eax
push 1
lea ecx, [ebp - 0x111]
push 1
push ecx
call fcn.0052edba
add esp, 0x10
jmp 0x47c410
xor eax, eax
cmp eax, 1
jne 0x47c433
mov al, byte [ebp - 0x111]
cmp al, 0x38
je 0x47c467
cmp dword [ebx + 0x14], 0
je 0x47c451
mov eax, dword [ebx + 0x18]
cmp eax, 1
jb 0x47c433
add eax, 0xffffffff
mov dword [ebx + 0x18], eax
mov eax, 3
lea esp, [ebp - 0x144]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005120db
mov esp, ebp
pop ebp
ret 4
mov ebx, dword [ebx + 4]
test ebx, ebx
je 0x47c433
movsx edx, al
push ebx
push edx
call fcn.0051b7b3
add esp, 8
jmp 0x47c433
cmp dword [ebx + 0x14], 0
je 0x47c482
lea eax, [ebp - 0x111]
push eax
mov eax, 1
mov edi, ebx
call fcn.00469830
jmp 0x47c4a1
mov eax, dword [ebx + 4]
test eax, eax
je 0x47c49f
push eax
push 1
lea ecx, [ebp - 0x111]
push 1
push ecx
call fcn.0052edba
add esp, 0x10
jmp 0x47c4a1
xor eax, eax
cmp eax, 1
jne 0x47c433
mov al, byte [ebp - 0x111]
cmp al, 0x42
jne 0x47c41f
cmp dword [ebx + 0x14], 0
je 0x47c4cf
lea eax, [ebp - 0x111]
push eax
mov eax, 1
mov edi, ebx
call fcn.00469830
jmp 0x47c4ee
mov eax, dword [ebx + 4]
test eax, eax
je 0x47c4ec
push eax
push 1
lea ecx, [ebp - 0x111]
push 1
push ecx
call fcn.0052edba
add esp, 0x10
jmp 0x47c4ee
xor eax, eax
cmp eax, 1
jne 0x47c433
mov al, byte [ebp - 0x111]
cmp al, 0x49
jne 0x47c41f
cmp dword [ebx + 0x14], 0
je 0x47c520
lea eax, [ebp - 0x111]
push eax
mov eax, 1
mov edi, ebx
call fcn.00469830
jmp 0x47c53f
mov eax, dword [ebx + 4]
test eax, eax
je 0x47c53d
push eax
push 1
lea ecx, [ebp - 0x111]
push 1
push ecx
call fcn.0052edba
add esp, 0x10
jmp 0x47c53f
xor eax, eax
cmp eax, 1
jne 0x47c433
mov al, byte [ebp - 0x111]
cmp al, 0x4d
jne 0x47c41f
cmp dword [ebx + 0x14], 0
mov esi, dword [ebp - 0x120]
lea eax, [esi + 0x24]
je 0x47c574
push eax
mov eax, 4
mov edi, ebx
call fcn.00469830
jmp 0x47c58d
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x47c58b
push ecx
push 4
push 1
push eax
call fcn.0052edba
add esp, 0x10
jmp 0x47c58d
xor eax, eax
cmp eax, 4
jne 0x47c433
mov byte [esi + 0x28], 0
cmp dword [ebx + 0x14], 0
lea eax, [esi + 0x29]
je 0x47c5b2
push eax
mov eax, 1
mov edi, ebx
call fcn.00469830
jmp 0x47c5cb
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x47c5c9
push ecx
push 1
push 1
push eax
call fcn.0052edba
add esp, 0x10
jmp 0x47c5cb
xor eax, eax
cmp eax, 1
jne 0x47c433
cmp dword [ebx + 0x14], 0
lea eax, [esi + 0x2a]
je 0x47c5ec
push eax
mov eax, 1
mov edi, ebx
call fcn.00469830
jmp 0x47c605
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x47c603
push ecx
push 1
push 1
push eax
call fcn.0052edba
add esp, 0x10
jmp 0x47c605
xor eax, eax
cmp eax, 1
jne 0x47c433
cmp dword [ebx + 0x14], 0
lea eax, [esi + 0x2b]
je 0x47c626
push eax
mov eax, 1
mov edi, ebx
call fcn.00469830
jmp 0x47c63f
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x47c63d
push ecx
push 1
push 1
push eax
call fcn.0052edba
add esp, 0x10
jmp 0x47c63f
xor eax, eax
cmp eax, 1
jne 0x47c433
cmp dword [ebx + 0x14], 0
je 0x47c663
lea eax, [ebp - 0x111]
push eax
mov eax, 1
mov edi, ebx
call fcn.00469830
jmp 0x47c682
mov eax, dword [ebx + 4]
test eax, eax
je 0x47c680
push eax
push 1
lea ecx, [ebp - 0x111]
push 1
push ecx
call fcn.0052edba
add esp, 0x10
jmp 0x47c682
xor eax, eax
cmp eax, 1
jne 0x47c433
add esi, 0x2c
cmp dword [ebx + 0x14], 0
je 0x47c6a6
push esi
mov eax, 4
mov edi, ebx
call fcn.00469830
shr eax, 2
jmp 0x47c6bf
mov eax, dword [ebx + 4]
test eax, eax
je 0x47c6bd
push eax
push 1
push 4
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47c6bf
xor eax, eax
cmp eax, 1
jne 0x47c433
mov eax, dword [esi]
rol eax, 0x10
mov edx, eax
mov ecx, eax
shr edx, 8
shl ecx, 8
xor edx, ecx
shl eax, 8
and edx, 0xff00ff
xor edx, eax
mov eax, ebx
mov dword [esi], edx
call fcn.00469880
add eax, dword [esi]
mov esi, dword [ebp - 0x120]
add esi, 0x30
cmp dword [ebx + 0x14], 0
mov dword [ebp - 0x12c], eax
je 0x47c716
push esi
mov eax, 4
mov edi, ebx
call fcn.00469830
shr eax, 2
jmp 0x47c72f
mov eax, dword [ebx + 4]
test eax, eax
je 0x47c72d
push eax
push 1
push 4
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47c72f
xor eax, eax
cmp eax, 1
jne 0x47c433
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 0x47c9b0
cmp esi, 0x14
jne 0x47c433
mov esi, dword [ebp - 0x120]
add esi, 0x34
cmp dword [ebx + 0x14], 0
je 0x47c788
push esi
lea eax, [edx - 0x10]
mov edi, ebx
call fcn.00469830
shr eax, 2
jmp 0x47c7a1
mov eax, dword [ebx + 4]
test eax, eax
je 0x47c79f
push eax
push 1
push 4
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47c7a1
xor eax, eax
cmp eax, 1
jne 0x47c433
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, dword [ebp - 0x120]
add esi, 0x38
cmp dword [ebx + 0x14], 0
je 0x47c7e9
push esi
mov eax, 4
mov edi, ebx
call fcn.00469830
shr eax, 2
jmp 0x47c802
mov eax, dword [ebx + 4]
test eax, eax
je 0x47c800
push eax
push 1
push 4
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47c802
xor eax, eax
cmp eax, 1
jne 0x47c433
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, dword [ebp - 0x120]
add esi, 0x3c
cmp dword [ebx + 0x14], 0
je 0x47c84a
push esi
mov eax, 4
mov edi, ebx
call fcn.00469830
shr eax, 2
jmp 0x47c863
mov eax, dword [ebx + 4]
test eax, eax
je 0x47c861
push eax
push 1
push 4
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47c863
xor eax, eax
cmp eax, 1
jne 0x47c433
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, dword [ebp - 0x120]
add esi, 0x40
cmp dword [ebx + 0x14], 0
je 0x47c8ab
push esi
mov eax, 4
mov edi, ebx
call fcn.00469830
shr eax, 2
jmp 0x47c8c4
mov eax, dword [ebx + 4]
test eax, eax
je 0x47c8c2
push eax
push 1
push 4
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47c8c4
xor eax, eax
cmp eax, 1
jne 0x47c433
mov eax, dword [esi]
rol eax, 0x10
mov edx, eax
mov ecx, eax
shr edx, 8
shl ecx, 8
xor edx, ecx
shl eax, 8
and edx, 0xff00ff
xor edx, eax
mov eax, dword [ebp - 0x120]
mov dword [esi], edx
add eax, 0x44
cmp dword [ebx + 0x14], 0
je 0x47c909
push eax
mov eax, 1
mov edi, ebx
call fcn.00469830
jmp 0x47c922
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x47c920
push ecx
push 1
push 1
push eax
call fcn.0052edba
add esp, 0x10
jmp 0x47c922
xor eax, eax
cmp eax, 1
jne 0x47c433
mov eax, dword [ebp - 0x120]
add eax, 0x45
cmp dword [ebx + 0x14], 0
je 0x47c949
push eax
mov eax, 1
mov edi, ebx
call fcn.00469830
jmp 0x47c962
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x47c960
push ecx
push 1
push 1
push eax
call fcn.0052edba
add esp, 0x10
jmp 0x47c962
xor eax, eax
cmp eax, 1
jne 0x47c433
cmp dword [ebx + 0x14], 0
je 0x47c988
lea edx, [ebp - 0x114]
push edx
mov eax, 2
mov edi, ebx
call fcn.00469830
shr eax, 1
jmp 0x47c9a7
mov eax, dword [ebx + 4]
test eax, eax
je 0x47c9a5
push eax
push 1
lea eax, [ebp - 0x114]
push 2
push eax
call fcn.0052edba
add esp, 0x10
jmp 0x47c9a7
xor eax, eax
cmp eax, 1
jne 0x47c433
mov esi, dword [ebp - 0x120]
add esi, 0x48
cmp dword [ebx + 0x14], 0
je 0x47c9d1
push esi
mov eax, 4
mov edi, ebx
call fcn.00469830
shr eax, 2
jmp 0x47c9ea
mov eax, dword [ebx + 4]
test eax, eax
je 0x47c9e8
push eax
push 1
push 4
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47c9ea
xor eax, eax
cmp eax, 1
jne 0x47c433
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 [ebx + 0x14], 0
mov esi, ecx
je 0x47ca2c
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
add eax, esi
cmp ecx, eax
ja 0x47ca27
mov eax, ecx
mov dword [ebx + 0x18], eax
jmp 0x47ca43
mov eax, dword [ebx + 4]
push 1
push esi
push eax
call fcn.005303b8
add esp, 0xc
test eax, eax
jne 0x47c438
cmp dword [ebx + 0x14], 0
je 0x47ca5e
lea ecx, [ebp - 0x110]
push ecx
mov eax, 1
mov edi, ebx
call fcn.00469830
jmp 0x47ca7d
mov eax, dword [ebx + 4]
test eax, eax
je 0x47ca7b
push eax
push 1
lea edx, [ebp - 0x110]
push 1
push edx
call fcn.0052edba
add esp, 0x10
jmp 0x47ca7d
xor eax, eax
cmp eax, 1
jne 0x47c433
mov al, byte [ebp - 0x110]
or al, 3
cmp dword [ebx + 0x14], 0
mov byte [ebp - 0x110], al
movzx eax, al
je 0x47caad
lea ecx, [ebp - 0x10f]
push ecx
mov edi, ebx
call fcn.00469830
jmp 0x47cacb
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x47cac9
push ecx
push eax
lea edx, [ebp - 0x10f]
push 1
push edx
call fcn.0052edba
add esp, 0x10
jmp 0x47cacb
xor eax, eax
movzx ecx, byte [ebp - 0x110]
cmp eax, ecx
jne 0x47c433
lea eax, [ebp - 0x10f]
mov byte [ebp + ecx - 0x10f], 0
mov dword [ebp - 0x130], 0
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x47caf5
lea ecx, [ebp - 0x10f]
sub eax, edx
push ecx
lea edi, [ebp - 0x130]
call fcn.0044a090
mov eax, dword [ebp - 0x120]
add eax, 0x4c
mov esi, edi
call fcn.004010e0
call fcn.00401070
mov eax, ebx
call fcn.00469880
cmp eax, dword [ebp - 0x12c]
ja 0x47cfd5
mov esi, 0x6c756e69
nop
cmp dword [ebx + 0x14], 0
je 0x47cb5b
lea edx, [ebp - 0x121]
push edx
mov eax, 1
mov edi, ebx
call fcn.00469830
jmp 0x47cb7a
mov eax, dword [ebx + 4]
test eax, eax
je 0x47cb78
push eax
push 1
lea eax, [ebp - 0x121]
push 1
push eax
call fcn.0052edba
add esp, 0x10
jmp 0x47cb7a
xor eax, eax
cmp eax, 1
jne 0x47cfd5
cmp byte [ebp - 0x121], 0x38
jne 0x47cd90
cmp dword [ebx + 0x14], 0
je 0x47cba6
lea ecx, [ebp - 0x119]
push ecx
mov edi, ebx
call fcn.00469830
jmp 0x47cbc5
mov eax, dword [ebx + 4]
test eax, eax
je 0x47cbc3
push eax
push 1
lea edx, [ebp - 0x119]
push 1
push edx
call fcn.0052edba
add esp, 0x10
jmp 0x47cbc5
xor eax, eax
cmp eax, 1
jne 0x47cfd5
cmp byte [ebp - 0x119], 0x42
jne 0x47cdce
cmp dword [ebx + 0x14], 0
je 0x47cbf6
lea eax, [ebp - 0x11a]
push eax
mov eax, 1
mov edi, ebx
call fcn.00469830
jmp 0x47cc15
mov eax, dword [ebx + 4]
test eax, eax
je 0x47cc13
push eax
push 1
lea ecx, [ebp - 0x11a]
push 1
push ecx
call fcn.0052edba
add esp, 0x10
jmp 0x47cc15
xor eax, eax
cmp eax, 1
jne 0x47cfd5
cmp byte [ebp - 0x11a], 0x49
jne 0x47cdf5
cmp dword [ebx + 0x14], 0
je 0x47cc41
lea edx, [ebp - 0x111]
push edx
mov edi, ebx
call fcn.00469830
jmp 0x47cc60
mov eax, dword [ebx + 4]
test eax, eax
je 0x47cc5e
push eax
push 1
lea eax, [ebp - 0x111]
push 1
push eax
call fcn.0052edba
add esp, 0x10
jmp 0x47cc60
xor eax, eax
cmp eax, 1
jne 0x47cfd5
cmp byte [ebp - 0x111], 0x4d
jne 0x47ce1c
cmp dword [ebx + 0x14], 0
je 0x47cc94
lea ecx, [ebp - 0x130]
push ecx
mov eax, 4
mov edi, ebx
call fcn.00469830
shr eax, 2
jmp 0x47ccb3
mov eax, dword [ebx + 4]
test eax, eax
je 0x47ccb1
push eax
push 1
lea edx, [ebp - 0x130]
push 4
push edx
call fcn.0052edba
add esp, 0x10
jmp 0x47ccb3
xor eax, eax
cmp eax, 1
jne 0x47c433
mov eax, dword [ebp - 0x130]
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 dword [ebx + 0x14], 0
mov dword [ebp - 0x130], ecx
je 0x47cd00
lea eax, [ebp - 0x134]
push eax
mov eax, 4
mov edi, ebx
call fcn.00469830
shr eax, 2
jmp 0x47cd1f
mov eax, dword [ebx + 4]
test eax, eax
je 0x47cd1d
push eax
push 1
lea ecx, [ebp - 0x134]
push 4
push ecx
call fcn.0052edba
add esp, 0x10
jmp 0x47cd1f
xor eax, eax
cmp eax, 1
jne 0x47c433
mov eax, dword [ebp - 0x134]
rol eax, 0x10
mov edx, eax
mov ecx, eax
shr edx, 8
shl ecx, 8
xor edx, ecx
shl eax, 8
and edx, 0xff00ff
xor edx, eax
mov eax, ebx
mov dword [ebp - 0x134], edx
call fcn.00469880
add eax, dword [ebp - 0x134]
cmp dword [ebp - 0x130], esi
je 0x47ce47
mov edx, eax
mov eax, ebx
call fcn.004709e0
test eax, eax
jne 0x47c438
mov eax, ebx
call fcn.00469880
cmp eax, dword [ebp - 0x12c]
jbe 0x47cb40
jmp 0x47cfd5
cmp dword [ebx + 0x14], 0
je 0x47cdad
mov eax, dword [ebx + 0x18]
cmp eax, 1
jb 0x47cfd5
add eax, 0xffffffff
mov dword [ebx + 0x18], eax
jmp 0x47cfd5
mov eax, dword [ebx + 4]
test eax, eax
je 0x47cfd5
movsx edx, byte [ebp - 0x121]
push eax
push edx
call fcn.0051b7b3
add esp, 8
jmp 0x47cfd5
cmp dword [ebx + 0x14], 0
jne 0x47cd96
mov eax, dword [ebx + 4]
test eax, eax
je 0x47cfd5
push eax
movsx eax, byte [ebp - 0x119]
push eax
call fcn.0051b7b3
add esp, 8
jmp 0x47cfd5
cmp dword [ebx + 0x14], 0
jne 0x47cd96
mov eax, dword [ebx + 4]
test eax, eax
je 0x47cfd5
movsx ecx, byte [ebp - 0x11a]
push eax
push ecx
call fcn.0051b7b3
add esp, 8
jmp 0x47cfd5
cmp dword [ebx + 0x14], 0
jne 0x47cd96
mov eax, dword [ebx + 4]
test eax, eax
je 0x47cfd5
movsx edx, byte [ebp - 0x111]
push eax
push edx
call fcn.0051b7b3
add esp, 8
jmp 0x47cfd5
cmp dword [ebx + 0x14], 0
je 0x47ce65
lea eax, [ebp - 0x114]
push eax
mov eax, 4
mov edi, ebx
call fcn.00469830
shr eax, 2
jmp 0x47ce84
mov eax, dword [ebx + 4]
test eax, eax
je 0x47ce82
push eax
push 1
lea ecx, [ebp - 0x114]
push 4
push ecx
call fcn.0052edba
add esp, 0x10
jmp 0x47ce84
xor eax, eax
cmp eax, 1
jne 0x47c433
mov eax, dword [ebp - 0x114]
rol eax, 0x10
mov edi, eax
mov edx, eax
shr edi, 8
shl edx, 8
xor edi, edx
shl eax, 8
and edi, 0xff00ff
xor edi, eax
lea eax, [edi + edi]
mov dword [ebp - 0x128], eax
add eax, 2
test eax, eax
mov dword [ebp - 0x114], edi
jle 0x47cfd5
call fcn.0051d230
mov esi, esp
test esi, esi
jne 0x47cedb
lea eax, [esp + 4]
jmp 0x47c438
cmp dword [ebx + 0x14], 0
je 0x47cef9
mov eax, dword [ebp - 0x128]
push esi
mov edi, ebx
call fcn.00469830
mov edi, dword [ebp - 0x114]
shr eax, 1
jmp 0x47cf17
mov eax, dword [ebx + 4]
test eax, eax
je 0x47cf15
push eax
push edi
push 2
push esi
call fcn.0052edba
mov edi, dword [ebp - 0x114]
add esp, 0x10
jmp 0x47cf17
xor eax, eax
cmp eax, edi
jne 0x47c433
xor eax, eax
test edi, edi
jbe 0x47cf49
jmp 0x47cf30
mov cx, word [esi + eax*2]
rol cx, 8
mov word [esi + eax*2], cx
mov edi, dword [ebp - 0x114]
add eax, 1
cmp eax, edi
jb 0x47cf30
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push esi
push 0
push 0xfde9
mov word [esi + edi*2], 0
mov dword [ebp - 0x118], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edi, eax
test edi, edi
je 0x47cf7a
sub edi, 1
lea eax, [edi + 1]
test eax, eax
jne 0x47cffc
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x128], 0
push 0
push 0
lea eax, [edi + 1]
push eax
mov eax, dword [ebp - 0x128]
push eax
push 0xffffffffffffffff
push esi
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ecx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x120]
add eax, 0x50
lea esi, [ebp - 0x118]
mov byte [ecx + edi], 0
call fcn.004010e0
mov edi, esi
call fcn.00401070
mov eax, ebx
call fcn.00469880
mov edx, dword [ebp - 0x12c]
cmp eax, edx
je 0x47cff5
mov eax, ebx
call fcn.004709e0
test eax, eax
jne 0x47c438
xor eax, eax
jmp 0x47c438
push 0
lea eax, [edi + 1]
push eax
lea edx, [ebp - 0x118]
push edx
call fcn.00449c70
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x47cf87
add eax, 4
mov dword [ebp - 0x128], eax
jmp 0x47cf91