Function at 0x472360
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
mov ecx, dword [ebp + 8]
push ebx
push esi
xor eax, eax
mov esi, dword [ecx + 4]
push edi
cmp esi, eax
mov dword [ebp - 4], 1
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 8], eax
jne 0x47238f
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x48]
mov dword [ebp - 0x10], edx
mov ebx, dword [ebp - 0x10]
mov eax, dword [ebx + 0xc]
mov edx, 1
cmp eax, edx
jle 0x472446
lea edi, [eax - 1]
mov eax, dword [ebx + 0x4c]
test eax, 0x10000000
mov dword [ebx + 0xc], edi
je 0x4724a1
test eax, 0x20000000
je 0x4724a1
mov ecx, dword [ebp + 0xc]
movsx ecx, byte [ecx]
cmp ecx, 2
jne 0x472425
mov edx, dword [ebp - 8]
test edx, edx
jne 0x472425
cmp dword [ebp - 4], 1
jg 0x472425
or eax, 0x20000000
mov dword [ebx + 0x4c], eax
mov eax, dword [ebx + 0x4c]
and eax, 0xbfffffff
push esi
mov dword [ebx + 0x4c], eax
call fcn.0048e6f0
add esp, 4
test eax, eax
jne 0x47336a
mov eax, dword [ebx + 0x4c]
mov dword [ebx + 0xc], edi
test eax, 0x10000000
je 0x47241b
test eax, 0x20000000
jne 0x4731af
or eax, 0x20000000
mov dword [ebx + 0x4c], eax
jmp 0x4724a1
and eax, 0xdfffffff
cmp ecx, 1
mov dword [ebx + 0x4c], eax
jne 0x4723e7
mov ecx, dword [ebp - 8]
test ecx, ecx
jne 0x4723e7
cmp dword [ebp - 4], 1
jg 0x4723e7
or eax, 0x40000000
jmp 0x4723ef
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
cmp ecx, 2
jne 0x472505
mov eax, dword [ebp - 8]
test eax, eax
jne 0x472505
cmp dword [ebp - 4], edx
jg 0x472505
or dword [ebx + 0x4c], 0x20000000
mov eax, dword [ebx + 0x4c]
and eax, 0xbfffffff
push esi
mov dword [ebx + 0x4c], eax
call fcn.0048e6f0
add esp, 4
test eax, eax
jne 0x47336a
mov eax, dword [ebx + 0x4c]
test eax, 0x10000000
je 0x4724a1
test eax, 0x20000000
jne 0x4731bc
movsx eax, byte [ebx + 0x48]
add eax, 0xfffffffe
cmp eax, 0x1a
ja case.0x4724b9.7
xor ecx, ecx
mov cl, byte [eax + 0x4733dc]
jmp dword [ecx*4 + 0x4733c4]
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x14], 0
test eax, eax
je 0x4724e2
xor ecx, ecx
mov cl, byte [eax + 0x1e]
test ecx, ecx
je 0x4724e2
mov byte [eax + 0x1e], 0
mov dword [ebp - 0x14], 1
test byte [esi + 0x11c], 4
je 0x47254d
cmp byte [esi + 0x10e], 1
jne 0x47254d
mov eax, dword [esi + 0x28]
mov cl, byte [eax + 5]
cmp cl, 0x20
jne 0x472536
mov byte [eax + 5], 0x24
jmp 0x47253f
mov eax, dword [ebx + 0x4c]
and eax, 0xdfffffff
cmp ecx, edx
mov dword [ebx + 0x4c], eax
jne 0x472470
mov ecx, dword [ebp - 8]
test ecx, ecx
jne 0x472470
cmp dword [ebp - 4], edx
jg 0x472470
or eax, 0x40000000
jmp 0x472478
cmp cl, 0x2b
jne 0x47253f
mov byte [eax + 5], 0
mov eax, dword [esi + 0x11c]
and al, 0xfb
mov dword [esi + 0x11c], eax
push esi
call fcn.0048aa00
add esp, 4
test eax, eax
jne 0x47336a
mov edx, dword [esi + 0x90]
mov ecx, dword [esi + 0x11c]
inc edx
and ecx, 0xfff7ffff
push eax
push esi
mov dword [esi + 0x90], edx
mov dword [esi + 0x11c], ecx
call fcn.0048ba80
add esp, 8
test eax, eax
jne 0x4731ec
mov dl, byte [esi + 0x10c]
movsx eax, dl
dec eax
cmp eax, 6
ja case.default.0x4725a2
jmp dword [eax*4 + 0x4733f8]
mov eax, dword [esi + 0x30]
test eax, eax
je 0x4725b8
add eax, 4
mov dword [esi + 0x2c], eax
jmp 0x4725c1
mov edx, dword [esi + 0x28]
add edx, 4
mov dword [esi + 0x2c], edx
mov eax, dword [esi + 0xb0]
mov ecx, dword [esi + 0x2c]
lea edx, [eax + ecx - 8]
mov dword [esi + 0x34], edx
jmp 0x472657
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x4725e0
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0xb0]
mov edx, eax
mov dword [esi + 0x2c], eax
lea eax, [ecx + edx - 1]
mov dword [esi + 0x34], eax
jmp 0x472657
mov eax, dword [esi + 0x30]
test eax, eax
je 0x472600
mov dword [esi + 0x2c], eax
jmp 0x472606
mov ecx, dword [esi + 0x28]
mov dword [esi + 0x2c], ecx
mov eax, dword [esi + 0xb0]
mov ecx, dword [esi + 0x2c]
add ecx, eax
mov eax, dword [esi + 0x11c]
test eax, 0x8000000
mov dword [esi + 0x34], ecx
je 0x47267c
mov eax, dword [esi + 0x118]
test ah, 1
je 0x472657
test ah, 0x10
je 0x472657
cmp dl, 1
jne 0x472657
add ecx, 0xfffffffe
mov dword [esi + 0x34], ecx
jmp 0x472657
push 0x3e3
push 0x58f79c
push 2
push 0xc0000008
call fcn.00485960
add esp, 0x10
test dword [esi + 0x11c], 0x8000000
je 0x47267c
mov eax, dword [esi + 0x118]
test ah, 1
je 0x47267c
test ah, 0x10
je 0x47267c
cmp byte [esi + 0x10c], 1
je 0x4726b2
mov al, byte [esi + 0x10e]
cmp al, 2
jne 0x472699
mov al, byte [esi + 0x10c]
cmp al, 7
je 0x4726b2
cmp al, 6
je 0x4726b2
dec dword [esi + 0x34]
jmp 0x4726b2
cmp al, 1
jne 0x4726b2
mov al, byte [esi + 0x10c]
cmp al, 7
je 0x4726ae
cmp al, 6
je 0x4726ae
dec dword [esi + 0x34]
add dword [esi + 0x2c], 5
mov edi, dword [esi + 0x2c]
mov ecx, dword [esi + 0x34]
sub ecx, edi
mov eax, 0x20202020
mov edx, ecx
mov dword [esi + 0x38], edi
shr ecx, 2
mov dword [esi + 0x3c], edi
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebp - 0x14]
mov dword [esi + 0xe4], 0
test eax, eax
je 0x472398
mov eax, dword [esi + 0x7c]
mov byte [eax + 0x1e], 1
jmp 0x472398
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x14], 0
mov al, byte [ecx]
cmp al, 1
je 0x472719
cmp al, 2
je 0x472715
test dword [ebx + 0x4c], 0x200000
je 0x4730f4
cmp al, 1
jne 0x472723
cmp dword [ebp - 4], 2
jl 0x47314b
cmp al, 2
jne 0x472737
mov ecx, dword [ebp - 4]
mov eax, 2
cmp ecx, eax
jl 0x4731c4
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x472752
xor ecx, ecx
mov cl, byte [eax + 0x1e]
test ecx, ecx
je 0x472752
mov byte [eax + 0x1e], 0
mov dword [ebp - 0x14], 1
mov eax, dword [esi + 0xe4]
test eax, eax
je 0x472781
mov eax, dword [esi + 0x120]
mov dword [esi + 0xe4], 0
test eax, 0x20000
jne 0x472781
mov eax, dword [esi + 0xec]
test eax, eax
jne 0x472960
test byte [esi + 0x11c], 4
je 0x4727bb
cmp byte [esi + 0x10e], 1
jne 0x4727bb
mov eax, dword [esi + 0x28]
mov cl, byte [eax + 5]
cmp cl, 0x20
jne 0x4727a4
mov byte [eax + 5], 0x24
jmp 0x4727ad
cmp cl, 0x2b
jne 0x4727ad
mov byte [eax + 5], 0
mov eax, dword [esi + 0x11c]
and al, 0xfb
mov dword [esi + 0x11c], eax
push esi
call fcn.0048aa00
add esp, 4
test eax, eax
jne 0x47336a
mov edx, dword [esi + 0x90]
mov ecx, dword [esi + 0x11c]
inc edx
and ecx, 0xfff7ffff
push eax
push esi
mov dword [esi + 0x90], edx
mov dword [esi + 0x11c], ecx
call fcn.0048ba80
add esp, 8
test eax, eax
jne 0x4731ec
mov dl, byte [esi + 0x10c]
movsx eax, dl
dec eax
cmp eax, 6
ja case.default.0x472810
jmp dword [eax*4 + 0x473414]
mov eax, dword [esi + 0x30]
test eax, eax
je 0x472826
add eax, 4
mov dword [esi + 0x2c], eax
jmp 0x47282f
mov edx, dword [esi + 0x28]
add edx, 4
mov dword [esi + 0x2c], edx
mov eax, dword [esi + 0xb0]
mov ecx, dword [esi + 0x2c]
lea edx, [eax + ecx - 8]
mov dword [esi + 0x34], edx
jmp 0x4728c5
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x47284e
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0xb0]
mov edx, eax
mov dword [esi + 0x2c], eax
lea eax, [ecx + edx - 1]
mov dword [esi + 0x34], eax
jmp 0x4728c5
mov eax, dword [esi + 0x30]
test eax, eax
je 0x47286e
mov dword [esi + 0x2c], eax
jmp 0x472874
mov ecx, dword [esi + 0x28]
mov dword [esi + 0x2c], ecx
mov eax, dword [esi + 0xb0]
mov ecx, dword [esi + 0x2c]
add ecx, eax
mov eax, dword [esi + 0x11c]
test eax, 0x8000000
mov dword [esi + 0x34], ecx
je 0x4728ea
mov eax, dword [esi + 0x118]
test ah, 1
je 0x4728c5
test ah, 0x10
je 0x4728c5
cmp dl, 1
jne 0x4728c5
add ecx, 0xfffffffe
mov dword [esi + 0x34], ecx
jmp 0x4728c5
push 0x4b3
push str.E:_forrtl_build_for_wseq_fmt.c
push 2
push 0xc0000008
call fcn.00485960
add esp, 0x10
test dword [esi + 0x11c], 0x8000000
je 0x4728ea
mov eax, dword [esi + 0x118]
test ah, 1
je 0x4728ea
test ah, 0x10
je 0x4728ea
cmp byte [esi + 0x10c], 1
je 0x472920
mov al, byte [esi + 0x10e]
cmp al, 2
jne 0x472907
mov al, byte [esi + 0x10c]
cmp al, 7
je 0x472920
cmp al, 6
je 0x472920
dec dword [esi + 0x34]
jmp 0x472920
cmp al, 1
jne 0x472920
mov al, byte [esi + 0x10c]
cmp al, 7
je 0x47291c
cmp al, 6
je 0x47291c
dec dword [esi + 0x34]
add dword [esi + 0x2c], 5
mov edi, dword [esi + 0x2c]
mov ecx, dword [esi + 0x34]
sub ecx, edi
mov eax, 0x20202020
mov edx, ecx
mov dword [esi + 0x38], edi
shr ecx, 2
mov dword [esi + 0x3c], 0
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esi + 0x120]
mov dword [esi + 0xec], 1
and eax, 0xfffdffff
mov dword [esi + 0x120], eax
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x47296e
mov eax, dword [esi + 0x7c]
mov byte [eax + 0x1e], 1
mov ecx, dword [esi + 0x2c]
mov dword [esi + 0x3c], ecx
jmp 0x472398
mov eax, dword [ebp - 0x10]
xor ebx, ebx
mov ecx, dword [eax + 0x38]
mov edx, dword [eax + 0x3c]
test ecx, ecx
mov dword [ebp - 0x14], edx
jle 0x4729f8
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0x2c]
mov dl, byte [ebx + ecx]
mov byte [eax], dl
mov edx, dword [esi + 0x2c]
mov ecx, dword [esi + 0x34]
inc edx
mov eax, edx
mov dword [esi + 0x2c], edx
cmp eax, ecx
jbe 0x4729ef
mov eax, dword [ebp - 0x10]
mov edi, dword [eax + 0x38]
cmp edi, 0x200
jg 0x4729b9
mov edi, 0x200
mov ecx, dword [esi + 0xb0]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x38], ecx
fild qword [ebp - 0x38]
fmul qword [0x4da1e8]
call fcn.004a3e70
cmp eax, edi
jle 0x4729dd
mov edi, eax
push edi
push esi
call fcn.00484da0
add esp, 8
test eax, eax
jne 0x473278
mov edx, dword [ebp - 0x10]
inc ebx
cmp ebx, dword [edx + 0x38]
jl 0x47298b
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x3c]
cmp eax, ecx
ja 0x472a04
mov eax, ecx
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x120]
or eax, 0x20000
mov dword [esi + 0xe4], 0
mov dword [esi + 0x120], eax
jmp 0x472395
cmp dword [ebp - 4], 2
jge 0x472398
mov eax, dword [ebp + 0xc]
mov al, byte [eax]
cmp al, 1
je 0x47314b
cmp al, 2
je 0x473224
mov ecx, dword [ebp - 4]
lea edx, [ebp + 0x10]
push ecx
lea eax, [ebp + 0xc]
push edx
push eax
call fcn.0048d0e0
add esp, 0xc
cmp eax, 2
je 0x473224
cmp eax, 1
je 0x47314b
jmp 0x472398
mov eax, dword [esi + 0x11c]
test eax, 0x8000000
je 0x472a90
mov ecx, dword [esi + 0x7c]
mov byte [ecx + 0x1e], 1
mov edx, dword [esi + 0x7c]
mov dword [edx + 0xc], esi
jmp 0x472398
or al, 4
mov dword [esi + 0x11c], eax
jmp 0x472398
mov eax, dword [ebp - 4]
mov edi, 1
cmp eax, edi
jle 0x472b5c
mov eax, dword [ebp - 0xbc]
cmp eax, 8
je 0x472ae6
cmp eax, 7
je 0x472ae6
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x24]
add ecx, eax
mov eax, dword [ebp - 8]
test eax, eax
mov dword [ebp - 0x24], ecx
je 0x472b57
mov ecx, dword [ebp - 4]
mov dword [ebp - 8], 0
dec ecx
mov dword [ebp - 4], ecx
jmp 0x472bd3
mov eax, dword [ebp - 8]
xor ecx, ecx
cmp eax, ecx
je 0x472b09
mov edx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 4]
add edi, edx
dec eax
mov dword [ebp - 0x24], edi
mov dword [ebp - 4], eax
mov dword [ebp - 8], ecx
jmp 0x472d30
cmp dword [ebp - 0x2c], ecx
je 0x472b11
mov dword [ebp - 8], edi
mov edx, dword [ebp - 0xb8]
xor eax, eax
cmp edx, ecx
jle 0x472b37
mov edi, dword [ebp + eax*4 - 0x5c]
sub edi, dword [ebp + eax*4 - 0xd8]
imul edi, dword [ebp + eax*4 - 0xf4]
add ecx, edi
inc eax
cmp eax, edx
jl 0x472b1d
mov eax, dword [ebp - 0xb4]
lea edx, [ebp - 0x5c]
add eax, ecx
lea ecx, [ebp - 0xbc]
push ecx
push edx
push 0
mov dword [ebp - 0x24], eax
call fcn.00484f50
add esp, 0xc
dec dword [ebp - 4]
jmp 0x472bd3
lea eax, [ebp - 0xbc]
lea ecx, [ebp - 0x24]
push eax
lea edx, [ebp + 0x10]
push ecx
lea eax, [ebp + 0xc]
push edx
push eax
call fcn.0048cda0
add esp, 0x10
test eax, eax
jne 0x473234
mov edi, dword [ebp - 0x1c]
mov ecx, 2
cmp edi, ecx
je 0x473247
mov edx, 1
cmp edi, edx
je 0x47314b
mov eax, dword [ebp - 0xbc]
cmp eax, 8
je 0x472c42
cmp eax, 7
je 0x472c42
cmp eax, 5
je 0x472bf3
cmp eax, 6
je 0x472bf3
cmp edi, 0x1c
jl 0x472bd0
cmp edi, 0x2c
jg 0x472bd0
mov dword [ebp - 4], ecx
mov dword [ebp - 8], edx
jmp 0x472bd3
mov dword [ebp - 4], edx
mov eax, dword [esi + 0x120]
mov dword [esi + 0xe4], 0
or eax, 0x20000
mov dword [esi + 0x120], eax
jmp 0x472d30
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x472c02
mov eax, dword [ebp - 0x20]
cdq
idiv ecx
jmp 0x472c16
mov eax, dword [esi + 0x11c]
mov ecx, dword [ebp - 0x20]
and eax, 0x100
neg eax
sbb eax, eax
and eax, ecx
mov dword [ebp - 4], eax
mov eax, dword [esi + 0x11c]
test ah, 1
je 0x472d30
mov eax, dword [ebp - 4]
test eax, eax
jne 0x472bd3
mov eax, 1
mov dword [esi + 0xe4], eax
mov dword [ebp - 0x28], eax
jmp 0x472d37
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x472c68
mov eax, dword [ebp - 0x20]
cdq
idiv ecx
mov edx, 1
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
xor eax, eax
cmp ecx, eax
jne 0x472c8a
mov dword [ebp - 0x28], edx
jmp 0x472d37
mov eax, dword [esi + 0x11c]
test ah, 1
je 0x472c7b
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 4], ecx
jmp 0x472c57
mov dword [ebp - 4], 0
mov dword [ebp - 0x28], edx
jmp 0x472d37
cmp edi, 0x1c
jl 0x472c9c
cmp edi, 0x2c
jg 0x472c9c
mov dword [ebp - 0x2c], edx
mov dword [ebp - 8], edx
jmp 0x472c9f
mov dword [ebp - 0x2c], eax
mov edi, dword [ebp - 0xb8]
cmp edi, eax
jle 0x472cce
lea ecx, [ebp - 0xa8]
mov edx, dword [ecx - 4]
mov ebx, dword [ecx]
mov dword [ebp + eax*4 - 0xd8], edx
mov dword [ebp + eax*4 - 0xf4], ebx
mov dword [ebp + eax*4 - 0x5c], edx
inc eax
add ecx, 0xc
cmp eax, edi
jl 0x472caf
xor eax, eax
xor ecx, ecx
test edi, edi
jle 0x472cf2
mov edx, dword [ebp + eax*4 - 0x5c]
mov ebx, dword [ebp + eax*4 - 0xd8]
sub edx, ebx
imul edx, dword [ebp + eax*4 - 0xf4]
add ecx, edx
inc eax
cmp eax, edi
jl 0x472cd6
mov eax, dword [ebp - 0xb4]
lea edx, [ebp - 0x5c]
add eax, ecx
lea ecx, [ebp - 0xbc]
push ecx
push edx
push 0
mov dword [ebp - 0x24], eax
call fcn.00484f50
mov eax, dword [esi + 0x120]
mov ebx, dword [ebp - 0x10]
add esp, 0xc
or eax, 0x20000
mov dword [esi + 0xe4], 0
mov dword [esi + 0x120], eax
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x472d53
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x472d4a
mov dword [ebx + 0xc], 2
jmp 0x472398
inc eax
mov dword [ebx + 0xc], eax
jmp 0x472398
mov edx, dword [ebx + 0x4c]
mov eax, dword [ebx]
and edx, 0xf7ffffff
mov dword [ebx + 0x4c], edx
mov ecx, dword [eax + 0x11c]
test ecx, 0x10000
je 0x472d90
movsx ecx, byte [ebx + 0x48]
mov ecx, dword [ecx*4 + 0x4dad10]
test ecx, ecx
je 0x472d90
mov eax, dword [ebp - 0x1c]
movsx ecx, byte [ecx + eax]
test ecx, ecx
je 0x472d93
mov eax, ecx
mov dword [ebp - 0x1c], eax
jmp 0x472d93
mov eax, dword [ebp - 0x1c]
movsx ecx, byte [ebx + 0x48]
add ecx, 0xffffffed
cmp ecx, 0x20
ja case.0x472dab.30
xor edx, edx
mov dl, byte [ecx + 0x473460]
jmp dword [edx*4 + 0x473430]
mov eax, dword [ebp - 0x18]
jmp 0x472f54
cmp eax, 5
jl 0x47325c
cmp eax, 0x11
jg 0x47325c
mov dword [ebx + 0x38], 2
jmp case.0x472dab.30
cmp eax, 0x19
jl 0x47325c
cmp eax, 0x33
jg 0x47325c
lea eax, [eax + eax*2 - 0x4b]
movsx edx, byte [eax + 0x4dac3c]
mov dword [ebx + 0x38], edx
movsx cx, byte [eax + 0x4dac3d]
mov word [ebx + 0x40], cx
movsx dx, byte [eax + 0x4dac3e]
mov word [ebx + 0x42], dx
jmp case.0x472dab.30
cmp eax, 0x19
jl case.0x472dab.22
cmp eax, 0x33
jg case.0x472dab.22
lea eax, [eax + eax*2 - 0x4b]
movsx ecx, byte [eax + 0x4dac3c]
mov dword [ebx + 0x38], ecx
movsx dx, byte [eax + 0x4dac3d]
mov word [ebx + 0x40], dx
movsx ax, byte [eax + 0x4dac3e]
mov word [ebx + 0x42], ax
jmp case.0x472dab.30
cmp eax, 5
jl 0x47325c
cmp eax, 0x11
jg 0x47325c
movsx ecx, byte [eax + 0x4dab67]
mov dword [ebx + 0x38], ecx
jmp case.0x472dab.30
movsx eax, word [eax*2 + 0x4dabbc]
cmp eax, 0xffffffff
mov dword [ebx + 0x38], eax
jne case.0x472dab.30
mov edx, dword [ebp - 0x18]
lea eax, [edx*4]
cmp eax, 0x11
jge 0x472f54
mov eax, 0x11
jmp 0x472f54
movsx eax, byte [eax + 0x4dab7c]
cmp eax, 0xffffffff
mov dword [ebx + 0x38], eax
jne case.0x472dab.30
mov eax, dword [ebp - 0x18]
lea eax, [eax + eax*2]
cmp eax, 7
jge 0x472f54
mov eax, 7
jmp 0x472f54
mov eax, dword [ebx + 0x38]
test eax, eax
jne case.0x472dab.30
mov eax, dword [ebx + 0x50]
or al, 2
mov dword [ebx + 0x50], eax
mov eax, dword [ebp - 0x1c]
movsx ecx, byte [eax + 0x4dab67]
mov dword [ebx + 0x38], ecx
mov word [ebx + 0x40], 1
jmp case.0x472dab.30
mov eax, dword [ebx + 0x38]
test eax, eax
jne case.0x472dab.30
mov eax, dword [ebx + 0x50]
or al, 2
mov dword [ebx + 0x50], eax
mov edx, dword [ebp - 0x1c]
movsx eax, byte [edx + 0x4dab7c]
mov dword [ebx + 0x38], eax
mov word [ebx + 0x40], 1
jmp case.0x472dab.30
mov eax, dword [ebx + 0x38]
test eax, eax
jne case.0x472dab.30
mov eax, dword [ebx + 0x50]
or al, 2
mov dword [ebx + 0x50], eax
mov ecx, dword [ebp - 0x1c]
movsx edx, word [ecx*2 + 0x4dabbc]
mov dword [ebx + 0x38], edx
jmp case.0x472dab.30
mov eax, dword [ebx + 0x38]
test eax, eax
jne case.0x472dab.30
mov edi, dword [ebx + 0x50]
movsx ecx, word [ebx + 0x40]
or edi, 2
mov dword [ebx + 0x50], edi
mov eax, dword [ebp - 0x1c]
movsx eax, byte [eax + eax*2 + 0x4dabf1]
add eax, ecx
mov dword [ebx + 0x38], eax
test byte [ebx + 0x50], 2
je 0x472fff
mov eax, dword [ebx + 0x38]
cmp eax, 0x40
ja 0x472f7b
lea edi, [ebp - 0x134]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0xc], edi
jmp 0x472f98
lea edx, [ebp - 0xc]
push edx
push 0
push eax
call fcn.0047e3c0
add esp, 0xc
test eax, eax
jne 0x47336a
mov edi, dword [ebp - 0xc]
mov dword [ebp - 0x30], edi
mov ecx, dword [ebx + 0x38]
mov eax, 0x20202020
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebp - 0xc]
lea ecx, [ebp - 0x24]
push eax
push ebx
push ecx
call fcn.0048d1f0
add esp, 0xc
test eax, eax
je 0x472fe1
cmp eax, 0x8000003f
jne 0x47336a
test dword [esi + 0x11c], 0x100000
jne 0x472fe1
mov dword [ebx + 0x10], 0x8000003f
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x472fff
mov edx, dword [ebp - 0xc]
cmp byte [edx], 0x20
jne 0x472fff
mov ecx, edx
inc ecx
mov dword [ebp - 0xc], ecx
mov eax, dword [ebx + 0x38]
dec eax
mov dword [ebx + 0x38], eax
jne 0x472fe8
mov edi, dword [ebx + 0x38]
mov edx, dword [esi + 0x2c]
mov ecx, dword [esi + 0x34]
mov eax, edi
add eax, edx
cmp eax, ecx
jbe 0x473053
cmp edi, 0x200
jg 0x47301d
mov edi, 0x200
mov ecx, dword [esi + 0xb0]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x40], ecx
fild qword [ebp - 0x40]
fmul qword [0x4da1e8]
call fcn.004a3e70
cmp eax, edi
jle 0x473041
mov edi, eax
push edi
push esi
call fcn.00484da0
add esp, 8
test eax, eax
jne 0x473278
test byte [ebx + 0x50], 2
je 0x4730a2
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x473084
mov eax, dword [ebp - 0xc]
mov edx, dword [esi + 0x2c]
mov cl, byte [eax]
mov eax, dword [ebp - 0x10]
mov byte [edx], cl
mov edi, dword [esi + 0x2c]
inc edi
mov dword [esi + 0x2c], edi
mov edx, dword [ebp - 0xc]
inc edx
mov dword [ebp - 0xc], edx
mov ecx, dword [eax + 0x38]
dec ecx
mov dword [eax + 0x38], ecx
jne 0x473060
mov ebx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x30]
mov edx, dword [ebx + 0x50]
and edx, 0xfffffffd
test eax, eax
mov dword [ebx + 0x50], edx
je 0x4730e0
push eax
call fcn.0047e430
add esp, 4
jmp 0x4730e0
mov edx, dword [esi + 0x2c]
lea eax, [ebp - 0x24]
push edx
push ebx
push eax
call fcn.0048d1f0
add esp, 0xc
test eax, eax
je 0x4730d5
cmp eax, 0x8000003f
jne 0x47336a
test dword [esi + 0x11c], 0x100000
jne 0x4730d5
mov dword [ebx + 0x10], 0x8000003f
mov ecx, dword [ebx + 0x38]
mov eax, dword [esi + 0x2c]
add eax, ecx
mov dword [esi + 0x2c], eax
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x3c]
cmp eax, ecx
ja 0x4730ec
mov eax, ecx
mov dword [esi + 0x3c], eax
jmp 0x472398
mov eax, dword [esi + 0x11c]
test ah, 1
je 0x4731d0
test dword [ebx + 0x4c], 0x80000000
je 0x4731d0
mov edx, dword [ebp - 4]
lea eax, [ebp - 0xbc]
push edx
lea ecx, [ebp - 0x24]
push eax
lea edx, [ebp + 0x10]
push ecx
lea eax, [ebp + 0xc]
push edx
push eax
call fcn.0048d170
add esp, 0x14
test eax, eax
je 0x4731d0
mov ecx, dword [ebp + 0xc]
cmp byte [ecx], 2
jne 0x47314b
mov ecx, dword [ebp - 4]
mov eax, 2
cmp ecx, eax
jl 0x4731c4
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x473161
xor edx, edx
mov dl, byte [eax + 0x1e]
mov eax, edx
test eax, eax
jne 0x47332d
mov eax, dword [esi + 0xe4]
test eax, eax
jne 0x473184
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4732a2
mov eax, dword [esi + 0xec]
test eax, eax
je 0x4732a2
mov eax, dword [esi + 0x120]
mov dword [esi + 0xe4], 0
test eax, 0x20000
je 0x473294
and eax, 0xfffdffff
mov dword [esi + 0x120], eax
jmp 0x4732a2
inc edi
xor eax, eax
mov dword [ebx + 0xc], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x4731c7
inc eax
mov dword [ebx + 0xc], eax
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push 0xc000003c
push 0xc000003c
push 1
call fcn.00485990
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push 0xc0000026
push 0xc0000026
push 1
call fcn.00485990
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push 0xc000002c
push 0xc000002c
push 1
call fcn.00485990
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
mov dword [ebx + 0xc], 2
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push eax
push eax
push edi
call fcn.00485990
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x4731c3
pop edi
mov dword [ebx + 0xc], ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push 0xc000003d
push 0xc000003d
push 1
call fcn.00485990
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push 0xc0000042
push 0xc0000042
push 1
call fcn.00485990
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0xec]
test eax, eax
jne 0x47332d
test byte [esi + 0x11c], 4
je 0x4732dc
cmp byte [esi + 0x10e], 1
jne 0x4732dc
mov eax, dword [esi + 0x28]
mov cl, byte [eax + 5]
cmp cl, 0x20
jne 0x4732c5
mov byte [eax + 5], 0x24
jmp 0x4732ce
cmp cl, 0x2b
jne 0x4732ce
mov byte [eax + 5], 0
mov eax, dword [esi + 0x11c]
and al, 0xfb
mov dword [esi + 0x11c], eax
push esi
call fcn.0048aa00
add esp, 4
test eax, eax
je 0x4732fd
push esi
push eax
push eax
push 1
call fcn.00485990
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x90]
mov ecx, dword [esi + 0x11c]
mov eax, dword [esi + 0x120]
inc edx
and ecx, 0xfff7ffff
and eax, 0xfffdffff
mov dword [esi + 0x90], edx
mov dword [esi + 0x11c], ecx
mov dword [esi + 0x120], eax
mov eax, dword [ebx + 0x4c]
test eax, 0x2000000
je 0x473363
and eax, 0xfdffffff
mov dword [ebx + 0x4c], eax
mov eax, dword [ebx + 4]
push eax
call fcn.0047e430
add esp, 4
test eax, eax
je 0x473363
push esi
push eax
push eax
push 1
call fcn.00485990
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x47337e
push esi
push eax
push eax
push 1
call fcn.00485990
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esi + 0x118]
mov edi, dword [esi + 0x11c]
mov ecx, dword [esi + 0xb8]
and ebx, 0xfdc6ffff
and edi, 0xfffffddf
push ecx
mov dword [esi + 0x118], ebx
mov dword [esi + 0x11c], edi
call fcn.004897a0
mov edx, dword [ebp + 8]
add esp, 4
pop edi
pop esi
mov dword [edx + 4], 0
pop ebx
mov esp, ebp
pop ebp
ret