Function at 0x4775a6
Capabilities:
Encode data using base64
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1f4
mov eax, dword [0x42b238]
mov esi, ecx
lea ecx, [esp + 0x58]
xor edi, edi
lea edx, [esi + 0x60]
dec edi
mov dword [esp + 0x1f0], eax
mov dword [ecx], 0
lea ecx, [esi + 0x54]
mov dword [esp + 0x20], edx
lea edx, [esi + 0x28]
mov dword [esp + 0x30], 0
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ecx
lea ecx, [esi + 0xe54]
mov dword [esp + 0x48], edx
lea edx, [esi + 0x1ac]
mov dword [esp + 4], ecx
lea ecx, [esi + 0xa40]
mov dword [esp], edx
lea edx, [esi + 0x48]
mov dword [esp + 0x1c], ecx
lea ecx, [esi + 0x1b0]
mov dword [esp + 0x14], edx
lea edx, [esi + 0xf8]
mov dword [esp + 0x28], ecx
lea ecx, [esi + 0x1b4]
mov dword [esp + 0x2c], edx
lea edx, [esi + 0x110c]
mov dword [esp + 0x44], ecx
lea ecx, [esi + 0x1110]
mov dword [esp + 0x40], edx
mov dword [esp + 0x24], ecx
jmp 0x47b0c3
cmp edi, 0xffffffff
je 0x477655
mov dword [esp + 0x5c], edi
jmp 0x4776fb
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x30]
test eax, eax
jne 0x4776ba
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x64]
push eax
push dword [esp + 0x28]
call fcn.0044008c
add esp, 0xc
mov edi, dword [esp + 0x58]
cmp edi, 0x101
jb 0x477690
mov edi, 0x100
mov dword [esp + 0x58], 0x100
push edi
push dword [esp + 0x64]
lea eax, [esp + 0xf8]
mov ebx, eax
push ebx
call fcn.0049a1f0
add esp, 0xc
push edi
push dword [esp + 0x24]
call fcn.0044000a
add esp, 8
mov eax, dword [esp + 0x58]
mov edx, ebx
movzx ecx, byte [edx]
dec eax
inc edx
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
cmp dword [esi + 0x1128], 2
mov dword [esp + 0x30], edx
jne 0x4776fb
mov eax, dword [esi + 0x108c]
test eax, eax
je 0x4776fb
sub esp, 0xc
movzx ecx, cl
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 2
call fcn.0043d10f
add esp, 0xc
cmp dword [esi + 0xec], 0
je 0x477755
push 1
lea eax, [esp + 0x60]
push eax
push dword [esp + 0x34]
call fcn.0043ff80
add esp, 0xc
cmp dword [esi + 0xf0], 0
je 0x477755
mov ecx, dword [esp + 0x5c]
cmp ecx, 0x5a
jle 0x477956
cmp ecx, 0x5b
je 0x4779c1
cmp ecx, 0x69
je 0x4779d3
cmp ecx, 0x9b
jne 0x4779cf
mov eax, 2
jmp 0x4779f7
mov ecx, dword [esi + 0xe44]
test ecx, ecx
je 0x4777ce
mov eax, dword [esp + 0x5c]
mov edx, eax
and edx, 0xffffffe0
cmp edx, 0x80
jne 0x477787
cmp ecx, 4
jg 0x477787
cmp dword [esi + 0x148], 0
jne 0x477787
test byte [esi], 0x10
jne 0x477a3d
cmp eax, 0x7f
jne 0x477866
mov eax, 0x7f
cmp ecx, 4
jg 0x4778c5
test byte [esi + 1], 0x40
je 0x4778c5
mov edx, dword [esi + 0x70]
test edx, edx
je 0x477ae0
cmp dword [esi + 0x8c], 0
mov edi, 0xffffffff
jne 0x477ae5
dec edx
mov dword [esi + 0x70], edx
jmp 0x477ae5
cmp dword [esi + 0xdc], 0
jne 0x4777ea
mov eax, dword [esi + 0x1090]
cmp dword [eax + 0xc], 0xfde9
jne 0x477a51
mov ebx, dword [esi + 0xe0]
lea eax, [ebx - 1]
cmp eax, 5
jae 0x477a05
mov edi, dword [esp + 0x5c]
mov eax, edi
and eax, 0xc0
cmp eax, 0x80
jne 0x477979
mov edx, dword [esi + 0xe4]
and edi, 0x3f
mov eax, edi
mov edi, 0xffffffff
shl edx, 6
or eax, edx
dec ebx
mov dword [esi + 0xe4], eax
mov dword [esi + 0xe0], ebx
jne 0x47b0c3
cmp eax, 0x80
mov dword [esp + 0x5c], eax
jb 0x478ca1
cmp eax, 0x7ff
ja 0x4783ba
cmp dword [esi + 0xe8], 1
jle 0x478cb8
jmp 0x478ca1
cmp eax, 0x1f
ja 0x4778c5
cmp ecx, 4
jg 0x4778c5
add eax, 0xfffffffb
mov edi, 0xffffffff
cmp eax, 0x16
ja case.0x478907.92
xor edi, edi
dec edi
jmp dword [eax*4 + 0x4184b8]
test byte [esi], 1
je 0x4786ac
mov eax, dword [esi + 0x1084]
mov edi, 0xffffffff
test eax, eax
je case.0x478907.92
xor ecx, ecx
push ecx
push dword [esi + 0x10dc]
push dword [esi + 0x10d8]
push ecx
push eax
call fcn.0043ca08
add esp, 0x14
jmp 0x47b047
cmp ecx, 0xd
mov edi, 0xffffffff
ja case.0x478907.92
xor edi, edi
dec edi
jmp dword [ecx*4 + 0x418514]
lea ecx, [eax - 0x30]
mov dword [esi + 0xe44], 0
cmp ecx, 9
ja 0x4781ba
mov ecx, dword [esi + 0x22c]
cmp ecx, 0x20
jg 0x4786db
cmp dword [esi + ecx*4 + 0x1a8], 0
jne 0x47791d
mov dword [esi + ecx*4 + 0x1a8], 0
mov ecx, dword [esi + 0x22c]
mov edi, dword [esi + ecx*4 + 0x1a8]
mov edx, 0xffffffff
cmp edi, 0x19999999
ja 0x47794a
add edi, edi
mov edx, 0xffffffcf
lea edi, [edi + edi*4]
sub edx, eax
cmp edi, edx
mov edx, 0xffffffff
ja 0x47794a
lea edx, [edi + eax - 0x30]
mov dword [esi + ecx*4 + 0x1a8], edx
jmp 0x4786db
cmp ecx, 0x1b
mov eax, 1
je 0x4779f7
cmp ecx, 0x34
jne 0x4779cf
cmp dword [esi + 0xf4], 2
mov eax, 3
jne 0x4779cf
jmp 0x4779f7
mov dword [esp + 0x5c], 0xd961
mov dword [esi + 0xe0], 0
mov edx, dword [esi + 0x6c]
mov ecx, esi
push 1
push 0xc44
call fcn.00474f94
add esp, 8
mov ebp, eax
mov eax, dword [esp + 0x5c]
xor ebx, ebx
mov ecx, eax
and ecx, 0xfffffc00
cmp ecx, 0xd800
sete cl
jne 0x477a25
mov bl, cl
jmp 0x477ea3
cmp dword [esi + 0xf4], 1
mov eax, 2
je 0x4779f7
xor eax, eax
jmp 0x4779f7
xor eax, eax
cmp dword [esi + 0xf4], 3
jne 0x4779f7
mov ecx, esi
mov dword [esi + 0xf4], 4
call fcn.00474d89
xor edi, edi
dec edi
jmp 0x47b0c3
xor edi, edi
mov dword [esi + 0xf4], eax
dec edi
jmp 0x47b0c3
test ebx, ebx
jne case.default.0x477a96
mov edx, dword [esp + 0x5c]
cmp edx, 0x7f
ja 0x47812d
mov eax, dword [esi + 0x1090]
jmp case.0x477a96.0
cmp dword [esi + 0x1108], 0
je 0x477e98
push eax
call fcn.0047ec45
jmp 0x477e9e
cmp eax, 0x9a
jne 0x477abd
mov dword [esp + 0x5c], 0
jmp 0x47b047
mov edi, dword [esi + 0xd0]
mov edx, dword [esp + 0x5c]
test edi, edi
je 0x477a76
cmp edx, 0x1b
ja 0x4785f6
mov ebx, 0x8002500
bt ebx, edx
jae 0x4785f6
mov edi, dword [esi + 0x94]
mov ebx, 0xffff2800
mov edi, dword [esi + edi*4 + 0x170]
add edi, ebx
rol edi, 0x18
cmp edi, 3
ja case.default.0x477a96
jmp dword [edi*4 + 0x4184a8]
movzx eax, byte [eax + edx + 0xa10]
cmp eax, 0xff
jne 0x4784d3
movzx eax, dl
or eax, 0xd900
jmp 0x4784d3
and eax, 0x1f
mov dword [esi + 0xe44], 1
mov dword [esi + 0x230], 0
or eax, 0x40
mov dword [esp + 0x5c], eax
jmp case.0x4778d6.1
xor edx, edx
xor edi, edi
dec edi
xor eax, eax
mov dword [esi + 0x8c], eax
cmp dword [esi + 0x1140], eax
jne case.0x478907.92
mov ecx, esi
push dword [esi + 0x6c]
call fcn.0047bbd8
add esp, 4
mov edx, dword [esi + 0x70]
mov ecx, esi
inc edx
push dword [esi + 0x6c]
call fcn.0047bbd8
add esp, 4
mov edx, dword [esi + 0x6c]
mov edi, dword [esi + 0x70]
xor eax, eax
mov ecx, esi
inc eax
push eax
push 0xb8e
call fcn.00474f94
add esp, 8
mov ecx, eax
mov edx, edi
push dword [esp + 0x10]
call fcn.0047bc7e
add esp, 4
jmp 0x47b047
cmp eax, 0x4b
mov dword [esi + 0xa3c], 0
jg 0x47856e
lea ecx, [eax - 0x30]
cmp ecx, 0xa
jae 0x478da5
mov ecx, dword [esp]
mov edi, 0xffffffff
mov edx, dword [ecx]
mov ecx, edi
cmp edx, 0x19999999
ja 0x477b8e
add edx, edx
mov ecx, 0xffffffcf
lea edx, [edx + edx*4]
sub ecx, eax
cmp edx, ecx
mov ecx, edi
ja 0x477b8e
lea ecx, [edx + eax - 0x30]
mov eax, dword [esp]
mov dword [eax], ecx
jmp case.0x478907.92
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x478da5
mov edx, dword [esp]
mov ebx, 0xffffffff
mov edi, ebx
mov edx, dword [edx]
cmp edx, 0x19999999
ja 0x477bcd
add edx, edx
mov edi, 0xffffffcf
lea edx, [edx + edx*4]
sub edi, eax
add ecx, edx
cmp edx, edi
cmova ecx, ebx
mov edi, ecx
mov eax, dword [esp]
mov dword [eax], edi
mov edi, ebx
jmp case.0x478907.92
mov ecx, dword [esi + 0x234]
mov edx, 0xf
mov edi, 0x15
lea ebx, [eax - 0x30]
test ecx, ecx
cmove edx, edi
cmp ebx, 0xa
jb 0x47862f
cmp eax, 0x41
jl 0x478616
lea edi, [edx + 0x37]
cmp eax, edi
jg 0x478616
add eax, 0xffffffc9
jmp 0x47862d
cmp eax, 0xc
jle 0x4783d7
cmp eax, 0x9c
je 0x478411
cmp eax, 0x1b
je 0x478a67
cmp eax, 0xd
je 0x4786ac
jmp 0x4783e5
cmp eax, 0x5c
je 0x478411
mov ecx, eax
and ecx, 0xfffffff0
cmp ecx, 0x20
jne 0x477c6c
cmp dword [esi + 0x230], 1
sbb ecx, ecx
not ecx
or ecx, eax
mov dword [esi + 0x230], ecx
jmp 0x47b047
mov dword [esi + 0xe44], 0
mov ecx, dword [esi + 0x230]
shl ecx, 8
add ecx, eax
cmp ecx, 0x2337
jg 0x47814a
cmp ecx, 0x59
jg 0x4784dc
lea eax, [ecx - 0x37]
cmp eax, 7
jbe 0x47889d
add ecx, 0xffffffbc
mov edi, 0xffffffff
cmp ecx, 9
ja case.0x478907.92
xor edi, edi
dec edi
jmp dword [ecx*4 + 0x41896c]
test byte [esi], 2
je 0x4786ac
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x80]
jne 0x4795c1
mov edx, dword [esi + 0x7c]
xor edi, edi
mov ecx, esi
inc edi
push edi
push edi
push eax
call fcn.0047b914
add esp, 0xc
jmp 0x4795d0
xor ecx, ecx
mov dword [esi + 0xe44], ecx
mov dword [esi + 0x154], 1
cmp dword [esi + 0x109c], ecx
jne 0x477d2b
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
call fcn.0047d9f4
add esp, 0xc
mov dword [esi + 0x10a0], eax
mov eax, dword [esp + 0x5c]
add eax, 0xffffffc4
mov edi, 0xffffffff
cmp eax, 0x3b
ja case.0x478907.92
xor edi, edi
dec edi
jmp dword [eax*4 + 0x41854c]
mov dword [esi + 0x148], 0
mov eax, dword [esi + 0x1104]
mov ecx, esi
mov dword [esi + 0xc4], eax
call fcn.00474e5f
jmp 0x47b047
mov dword [esi + 0xe44], 0xb
add eax, 0xffffffe0
mov ebx, 0
mov ecx, dword [esi + 0x70]
mov edi, dword [esi + 0x12c]
mov edx, dword [esi + 0x128]
test ecx, ecx
cmovs ecx, ebx
cmp ecx, edi
lea edi, [edi - 1]
cmovl edi, ecx
test eax, eax
lea ecx, [edx - 1]
cmovs eax, ebx
mov dword [esi + 0x70], edi
cmp eax, edx
cmovl ecx, eax
mov dword [esi + 0x6c], ecx
mov dword [esi + 0x8c], ebx
jmp 0x47b047
xor edi, edi
add eax, 0xffffffe0
mov dword [esi + 0xe44], edi
cmovs eax, edi
mov ecx, dword [esi + 0x12c]
mov ebx, dword [esi + 0x6c]
mov edx, dword [esi + 0x128]
cmp eax, ecx
lea ecx, [ecx - 1]
cmovl ecx, eax
test ebx, ebx
cmovs ebx, edi
mov dword [esi + 0x70], ecx
cmp ebx, edx
lea edx, [edx - 1]
cmovl edx, ebx
mov dword [esi + 0x6c], edx
mov dword [esi + 0x8c], edi
jmp 0x47b047
xor edi, edi
mov edx, 0xfffbfe00
and eax, 0xf
mov dword [esi + 0xe44], edi
mov ecx, dword [esi + 0x40]
and ecx, edx
or eax, ecx
mov dword [esi + 0x40], eax
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 8]
mov dword [edx + 8], ecx
movsd xmm0, qword [esi]
mov esi, dword [esp + 0xc]
movsd qword [edx], xmm0
cmp dword [esi + 0xb8], edi
mov edi, 0xffffffff
je case.0x478907.92
and eax, 0x3fe0f
jmp 0x477e90
xor edi, edi
and eax, 0xf
mov edx, 0xffdc01ff
mov dword [esi + 0xe44], edi
shl eax, 9
mov ecx, dword [esi + 0x40]
and ecx, edx
or eax, ecx
mov dword [esi + 0x40], eax
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 8]
mov dword [edx + 8], ecx
movsd xmm0, qword [esi]
mov esi, dword [esp + 0xc]
movsd qword [edx], xmm0
cmp dword [esi + 0xb8], edi
mov edi, 0xffffffff
je case.0x478907.92
and eax, 0x1fff
mov dword [esi + 0x58], eax
jmp 0x47b047
push eax
call fcn.0047eb9c
add esp, 4
mov ebx, eax
cmp dword [esi + 0x8c], 0
je 0x477f10
test ebx, ebx
jle 0x477f10
mov eax, dword [esi + 0x88]
test eax, eax
je 0x477f10
or byte [ebp], 0x10
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x80]
jne 0x477ee1
mov edx, dword [esi + 0x7c]
xor ebp, ebp
mov ecx, esi
inc ebp
push ebp
push ebp
push eax
call fcn.0047b914
add esp, 0xc
mov eax, dword [esi + 0x6c]
jmp 0x477ef0
mov ecx, dword [esi + 0x128]
dec ecx
cmp eax, ecx
jge 0x477ef0
inc eax
mov dword [esi + 0x6c], eax
xor ecx, ecx
mov edx, eax
mov dword [esi + 0x70], ecx
mov dword [esi + 0x8c], ecx
mov ecx, esi
push 1
push 0xc55
call fcn.00474f94
add esp, 8
mov ebp, eax
test ebx, ebx
jle 0x477f27
mov eax, dword [esi + 0x90]
test eax, eax
je 0x477f27
mov ecx, esi
mov edx, ebx
call fcn.0047cf1b
cmp dword [esi + 0xe48], 0
je 0x477fae
mov dword [esp + 8], ebp
mov ebp, 0
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x60], eax
mov ecx, dword [esi + 0x70]
cmp ecx, dword [esi + 0x12c]
mov edx, ecx
cmove edx, ebp
lea ebp, [esp + 0x60]
mov dword [esp + 0x54], edx
lea edx, [esp + 0x54]
cmove edx, ebp
mov ebp, esi
inc dword [edx]
cmp dword [esi + 0xe5c], eax
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x54]
jle 0x477f9c
mov ecx, dword [esp + 4]
cmp dword [ecx], edx
jl 0x477f83
jne 0x477fa6
cmp dword [ebp + 0xe58], eax
jge 0x477fa6
xor ecx, ecx
mov dword [ebp + 0xe48], ecx
mov eax, dword [esp + 4]
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ecx
jmp 0x477fa6
jne 0x477fa6
cmp dword [ebp + 0xe60], ecx
jg 0x477f71
mov eax, dword [esp + 8]
mov esi, ebp
mov ebp, eax
mov eax, dword [esp + 0x5c]
mov ecx, eax
and ecx, 0xffffff00
cmp ecx, 0xd800
je 0x477fc6
test ecx, ecx
jne 0x477fdf
mov ecx, dword [esi + 0x108c]
test ecx, ecx
je 0x477fdf
movzx eax, al
push 1
push eax
push ecx
call fcn.0043d10f
add esp, 0xc
test ebx, ebx
je 0x47806a
cmp ebx, 1
je 0x4780f6
cmp ebx, 2
jne 0x47b0c3
mov edx, dword [esi + 0x70]
mov ecx, esi
push dword [esi + 0x6c]
call fcn.0047bbd8
add esp, 4
mov edx, dword [esi + 0x70]
mov ecx, esi
add edx, 2
push dword [esi + 0x6c]
call fcn.0047bbd8
add esp, 4
mov eax, dword [esi + 0x12c]
mov edx, dword [esi + 0x70]
dec eax
cmp edx, eax
jne 0x4787df
mov ecx, ebp
push dword [esp + 0x10]
call fcn.0047bc7e
add esp, 4
or byte [ebp], 0x30
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x80]
jne 0x47878e
mov edx, dword [esi + 0x7c]
xor ebx, ebx
mov ecx, esi
inc ebx
push ebx
push ebx
push eax
call fcn.0047b914
add esp, 0xc
mov eax, dword [esi + 0x6c]
jmp 0x47879d
mov ebx, dword [esi + 0x70]
test ebx, ebx
jle 0x47b0c3
cmp dword [esi + 0x8c], 1
mov eax, dword [ebp + 0x14]
sbb ebx, 0
lea ecx, [ebx + ebx*2]
cmp dword [eax + ecx*4], 0xdfff
jne 0x4780aa
test ebx, ebx
jg 0x4780a9
push 0xcb0
push str..._terminal.c
push str.x___0
call fcn.004a509d
add esp, 0xc
dec ebx
mov ecx, ebp
mov edx, ebx
push dword [esp + 0x5c]
call fcn.0047bd42
add esp, 4
mov dword [esi + 0x154], 1
cmp dword [esi + 0x109c], 0
jne 0x47b0c3
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
call fcn.0047d9f4
add esp, 0xc
mov dword [esi + 0x10a0], eax
jmp 0x47b0c3
mov edx, dword [esi + 0x70]
mov ecx, esi
push dword [esi + 0x6c]
call fcn.0047bbd8
add esp, 4
mov edx, dword [esi + 0x70]
mov ecx, esi
inc edx
push dword [esi + 0x6c]
call fcn.0047bbd8
add esp, 4
mov edx, dword [esi + 0x70]
mov ecx, ebp
call fcn.0047bcd7
mov eax, dword [esp + 0x5c]
lea ebx, [ebp + 0x14]
jmp 0x47881c
mov eax, edx
and eax, 0xe0
cmp eax, 0xc0
jne 0x47854f
xor eax, eax
and edx, 0x1f
inc eax
jmp 0x4791aa
cmp ecx, 0x2841
mov eax, 0xffffffff
jg 0x478598
cmp ecx, 0x2546
jg 0x478b1a
cmp ecx, 0x2338
je 0x478f31
cmp ecx, 0x2538
je 0x478d46
cmp ecx, 0x2540
mov edi, eax
jne case.0x478907.92
test byte [esi + 1], 0x40
je 0x478b98
cmp dword [esi + 0x1148], 0
mov edi, 0xffffffff
jne case.0x478907.92
xor edi, edi
mov dword [esi + 0xdc], 0
jmp 0x47b049
cmp eax, 0x3b
mov ecx, 1
jne 0x4786bb
mov eax, dword [esi + 0x22c]
cmp eax, 0x1f
jg 0x4786db
lea ecx, [eax + 1]
mov dword [esi + 0x22c], ecx
mov dword [esi + eax*4 + 0x1ac], 0
jmp 0x4786db
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [esi + 0x34], 0
mov edi, dword [esp + 0x48]
mov ebx, eax
jne 0x47af5d
push 8
push 1
call fcn.0043f807
add esp, 8
xor ecx, ecx
mov dword [eax + 4], ebx
mov dword [eax], ecx
cmp dword [edi], ecx
mov ecx, edi
je 0x478222
mov ecx, dword [esi + 0x2c]
mov dword [ecx], eax
mov dword [esi + 0x2c], eax
xor eax, eax
inc eax
jmp 0x47af5a
mov eax, dword [esi + 0x70]
test eax, eax
je 0x478960
cmp dword [esi + 0x8c], 0
je 0x478c5a
mov dword [esi + 0x8c], 0
jmp 0x478c5e
mov edx, dword [esi + 0x6c]
mov eax, dword [esi + 0x70]
mov ecx, esi
mov dword [esp + 0x18], eax
mov dword [esp + 8], edx
push 1
push 0xc2a
call fcn.00474f94
add esp, 8
mov ecx, dword [esi + 0x70]
mov ebp, dword [esi + 0x12c]
lea edx, [ebp - 1]
inc ecx
mov edi, ecx
cmp edi, edx
mov dword [esi + 0x70], edi
jge 0x47829a
mov ebx, dword [esi + 0xe40]
lea ecx, [edi + 1]
cmp byte [ebx + edi], 0
je 0x478282
test byte [eax], 3
je 0x478993
mov eax, ebp
mov ecx, dword [esp + 8]
shr eax, 0x1f
add eax, ebp
sar eax, 1
cmp edi, eax
jl 0x4789a0
dec eax
mov dword [esi + 0x70], eax
mov edi, eax
jmp 0x4789a0
test byte [esi + 1], 0x10
jne 0x4786ec
test byte [esi], 2
je 0x4786ac
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x80]
jne 0x47841d
mov edx, dword [esi + 0x7c]
xor edi, edi
mov ecx, esi
inc edi
push edi
push edi
push eax
call fcn.0047b914
add esp, 0xc
jmp 0x47842c
xor eax, eax
mov dword [esi + 0x70], eax
mov dword [esi + 0x8c], eax
mov dword [esi + 0x154], 1
cmp dword [esi + 0x109c], eax
jne 0x47833a
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
call fcn.0047d9f4
add esp, 0xc
mov dword [esi + 0x10a0], eax
cmp dword [esi + 0x1114], 0
je 0x478ab0
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x80]
jne 0x478aa1
mov edx, dword [esi + 0x7c]
xor edi, edi
mov ecx, esi
inc edi
push edi
push edi
push eax
call fcn.0047b914
add esp, 0xc
jmp 0x478ab0
test byte [esi], 2
je 0x4786ac
mov dword [esi + 0x94], 1
jmp 0x47b047
test byte [esi], 2
je 0x4786ac
mov dword [esi + 0x94], 0
jmp 0x47b047
cmp dword [esi + 0x148], 0
je 0x4789ea
mov dword [esi + 0xe44], 9
jmp 0x47b047
cmp eax, 0xffff
ja 0x478771
cmp dword [esi + 0xe8], 2
jle 0x478cb8
jmp 0x478ca1
cmp eax, 7
je 0x478411
cmp eax, 0xa
je 0x4786ac
mov ecx, dword [esi + 0x234]
mov edi, 0xffffffff
cmp ecx, 0x7ff
jg case.0x478907.92
lea edx, [ecx + 1]
mov dword [esi + 0x234], edx
mov byte [esi + ecx + 0x238], al
jmp 0x47b047
mov ecx, esi
call fcn.0047d2b0
jmp 0x4786ac
mov ecx, dword [esi + 0x128]
dec ecx
cmp eax, ecx
jge 0x47842c
inc eax
mov dword [esi + 0x6c], eax
cmp dword [esi + 0x1120], 0
je 0x47843c
mov dword [esi + 0x70], 0
xor eax, eax
mov dword [esi + 0x8c], eax
mov dword [esi + 0x154], 1
cmp dword [esi + 0x109c], eax
jne 0x478476
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
call fcn.0047d9f4
add esp, 0xc
mov dword [esi + 0x10a0], eax
mov eax, dword [esi + 0x108c]
mov edi, 0xffffffff
test eax, eax
je case.0x478907.92
movzx ecx, byte [esp + 0x5c]
push 1
push ecx
push eax
jmp 0x478acc
cmp edx, 0x20
jb case.default.0x477a96
movzx eax, dl
or eax, 0xda00
jmp 0x4784d3
cmp edx, 0x23
jne case.0x477a96.0
mov dword [esp + 0x5c], 0xd97d
jmp 0x478d1f
movzx eax, byte [eax + edx + 0xa10]
cmp eax, 0xff
jne 0x4784d3
movzx eax, dl
or eax, 0xd800
mov dword [esp + 0x5c], eax
jmp 0x477763
lea eax, [ecx - 0x5a]
cmp eax, 9
jbe 0x478904
lea eax, [ecx - 0x2333]
mov edi, 0xffffffff
cmp eax, 4
jae case.0x478907.92
test byte [esi], 2
je 0x478b98
cmp eax, 2
mov eax, 1
mov ebx, eax
ja 0x478519
movzx ebx, word [ecx + ecx + 0x41378a]
mov edx, dword [esi + 0x6c]
mov ecx, esi
push 1
push 0xd67
call fcn.00474f94
add esp, 8
mov edi, eax
mov eax, dword [esi + 0x12c]
cmp eax, dword [edi + 4]
je 0x478547
mov ecx, esi
mov edx, edi
push eax
call fcn.0047be4d
add esp, 4
mov word [edi], bx
jmp 0x47b047
mov eax, edx
and eax, 0xf0
cmp eax, 0xe0
jne 0x478941
mov eax, 2
and edx, 0xf
jmp 0x4791aa
cmp eax, 0x51
jg 0x478a76
cmp eax, 0x4c
je 0x478d8f
cmp eax, 0x50
jne 0x478da5
mov dword [esi + 0xe44], 6
jmp 0x478daf
cmp ecx, 0x2940
jg 0x478b68
cmp ecx, 0x2842
je 0x47905a
cmp ecx, 0x2855
je 0x479083
cmp ecx, 0x2930
mov edi, eax
jne case.0x478907.92
test byte [esi], 2
je 0x478b98
cmp dword [esi + 0x1148], 0
mov edi, 0xffffffff
jne case.0x478907.92
xor edi, edi
mov dword [esi + 0x174], 0xd900
jmp 0x47b049
cmp edi, 2
jne 0x478605
or edx, 0x80
mov dword [esp + 0x5c], edx
or edx, 0xda00
mov dword [esp + 0x5c], edx
mov eax, edx
jmp 0x477763
cmp eax, 0x61
jl 0x4786ac
add edx, 0x57
cmp eax, edx
jg 0x4786ac
add eax, 0xffffffa9
mov ebx, eax
lea eax, [ecx + 1]
mov edi, 0xffffffff
mov dword [esi + 0x234], eax
mov byte [esi + ecx + 0x238], bl
cmp dword [esi + 0x234], 7
jl case.0x478907.92
movsx eax, byte [esi + 0x23d]
movsx ecx, byte [esi + 0x23e]
movsx edx, byte [esi + 0x23c]
movsx edi, byte [esi + 0x23a]
shl eax, 4
add ecx, eax
movsx eax, byte [esi + 0x23b]
shl eax, 4
add edx, eax
movsx eax, byte [esi + 0x239]
shl eax, 4
add edi, eax
movsx eax, byte [esi + 0x238]
push ecx
push edx
push edi
push eax
push dword [esi + 0x1088]
call fcn.0048bfa9
add esp, 0x14
push esi
call fcn.00475c80
add esp, 4
mov dword [esi + 0xe44], 0
jmp 0x47b047
mov ebx, dword [esi + 0x230]
cmp eax, 0x3f
ja 0x478ba9
cmove eax, ecx
cmp ebx, ecx
sbb ecx, ecx
not ecx
or ecx, eax
mov dword [esi + 0x230], ecx
xor edi, edi
mov dword [esi + 0xe44], 2
jmp 0x47b049
mov ecx, dword [esi + 0x12c]
mov eax, dword [esi + 0x128]
mov edi, 0
test ecx, ecx
lea ecx, [ecx - 1]
cmovg ecx, edi
test eax, eax
lea eax, [eax - 1]
cmovg eax, edi
mov dword [esi + 0x70], ecx
xor edx, edx
mov ecx, esi
mov dword [esi + 0x6c], eax
mov dword [esi + 0x8c], edi
push 1
push edi
call fcn.0047b6c6
add esp, 8
cmp dword [esi + 0x1168], edi
je 0x478737
mov dword [esi + 0x10], 0
xor eax, eax
mov edi, 0xffffffff
mov dword [esi + 0x8c], eax
mov dword [esi + 0x154], 1
cmp dword [esi + 0x109c], eax
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
cmp eax, 0x1fffff
ja 0x478c91
cmp dword [esi + 0xe8], 3
jg 0x478ca1
jmp 0x478cb8
mov ecx, dword [esi + 0x128]
dec ecx
cmp eax, ecx
jge 0x47879d
inc eax
mov dword [esi + 0x6c], eax
mov edx, eax
mov dword [esi + 0x70], 0
mov ecx, esi
push 1
push 0xc85
call fcn.00474f94
add esp, 8
mov edx, dword [esi + 0x70]
mov ebp, eax
mov ecx, esi
push dword [esi + 0x6c]
call fcn.0047bbd8
add esp, 4
mov edx, dword [esi + 0x70]
mov ecx, esi
add edx, 2
push dword [esi + 0x6c]
call fcn.0047bbd8
add esp, 4
mov edx, dword [esi + 0x70]
mov ecx, ebp
call fcn.0047bcd7
mov edx, dword [esi + 0x70]
mov eax, dword [esp + 0x5c]
mov ecx, dword [ebp + 0x14]
lea ebx, [ebp + 0x14]
lea edx, [edx + edx*2]
mov dword [ecx + edx*4], eax
mov edx, dword [esi + 0x70]
mov eax, dword [ebp + 0x14]
mov ecx, dword [esi + 0x40]
lea edx, [edx + edx*2]
mov dword [eax + edx*4 + 4], ecx
mov ecx, ebp
mov edx, dword [esi + 0x70]
inc edx
mov dword [esi + 0x70], edx
call fcn.0047bcd7
mov eax, 0xdfff
mov edx, dword [esi + 0x70]
mov ecx, dword [ebx]
lea edx, [edx + edx*2]
mov dword [ecx + edx*4], eax
mov edx, dword [esi + 0x70]
mov eax, dword [ebx]
mov ecx, dword [esi + 0x40]
lea edx, [edx + edx*2]
mov dword [eax + edx*4 + 4], ecx
mov eax, dword [esi + 0x70]
lea ecx, [eax + 1]
mov dword [esi + 0x70], ecx
cmp ecx, dword [esi + 0x12c]
jne 0x478a2b
mov dword [esi + 0x70], eax
mov dword [esi + 0x8c], 1
cmp dword [esi + 0x88], 0
je 0x478a2b
cmp dword [esi + 0x148], 0
je 0x478a2b
or byte [ebp], 0x10
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x80]
jne 0x478a11
mov edx, dword [esi + 0x7c]
xor ebx, ebx
mov ecx, esi
inc ebx
push ebx
push ebx
push eax
call fcn.0047b914
add esp, 0xc
jmp 0x478a20
xor edi, edi
dec edi
jmp dword [eax*4 + 0x41894c]
test byte [esi], 2
je 0x4786ac
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x6c]
mov edx, dword [esi + 0x70]
mov dword [esi + 0x78], edx
mov dword [esi + 0x74], ecx
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x94]
mov dword [esi + 0x98], eax
mov ecx, dword [esi + 0xdc]
mov dword [esi + 0xa0], ecx
mov ecx, dword [esi + 0x8c]
mov dword [esi + 0xa4], ecx
mov eax, dword [esi + eax*4 + 0x170]
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0xd0]
mov dword [esi + 0xd4], eax
jmp 0x47b047
xor edi, edi
dec edi
jmp dword [eax*4 + 0x418994]
test byte [esi], 2
je 0x4786ac
mov ebx, dword [esi + 0x1084]
mov edi, 0xffffffff
test ebx, ebx
je case.0x478907.92
mov edi, dword [esp + 0x1c]
push edi
call fcn.004a7f30
add esp, 4
push 0
push eax
push edi
push ebx
jmp 0x479421
mov eax, edx
and eax, 0xf8
cmp eax, 0xf0
jne 0x478d70
mov eax, 3
and edx, 7
jmp 0x4791aa
mov ecx, dword [esi + 0x6c]
test ecx, ecx
je 0x478c5e
cmp dword [esi + 0x88], 0
je 0x478c5e
test ecx, ecx
jle 0x47823a
mov eax, dword [esi + 0x12c]
dec ecx
dec eax
mov dword [esi + 0x70], eax
mov dword [esi + 0x6c], ecx
jmp 0x478c5e
mov ecx, dword [esp + 8]
cmp edi, ebp
jl 0x4789a0
mov edi, edx
mov dword [esi + 0x70], edx
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0xe5c], ecx
jle 0x4789d3
mov ecx, dword [esp + 4]
cmp dword [ecx], eax
jge 0x478ad9
xor ecx, ecx
mov dword [esi + 0xe48], ecx
mov eax, dword [esp + 4]
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ecx
jmp 0x478ae7
jne 0x478ae7
mov ecx, dword [esp + 0x18]
cmp dword [esi + 0xe60], ecx
jg 0x4789ab
jmp 0x478ae7
test byte [esi], 1
mov eax, 0xffffffff
je 0x4790fc
mov dword [esi + 0xe44], 1
mov dword [esi + 0x230], 0
jmp 0x479106
mov ecx, dword [esi + 0x128]
dec ecx
cmp eax, ecx
jge 0x478a20
inc eax
mov dword [esi + 0x6c], eax
xor eax, eax
mov dword [esi + 0x70], eax
mov dword [esi + 0x8c], eax
mov dword [esi + 0x154], 1
cmp dword [esi + 0x109c], 0
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
call fcn.0047d9f4
add esp, 0xc
mov dword [esi + 0x10a0], eax
jmp case.0x478907.92
mov dword [esi + 0xe44], 8
jmp 0x47b047
cmp eax, 0x52
je 0x478dbe
cmp eax, 0x57
jne 0x478da5
mov dword [esi + 0xe44], 4
mov dword [esi + 0xa3c], 1
jmp 0x47b047
mov ecx, dword [esi + 0x128]
dec ecx
cmp eax, ecx
jge 0x478ab0
inc eax
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x108c]
mov edi, 0xffffffff
test eax, eax
je case.0x478907.92
movzx ecx, byte [esp + 0x5c]
push 1
push ecx
push eax
call fcn.0043d10f
add esp, 0xc
jmp 0x47b047
jne 0x478ae7
cmp dword [esi + 0xe58], edi
jl 0x4789b7
mov dword [esi + 0x154], 1
mov edi, 0xffffffff
cmp dword [esi + 0x109c], 0
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
cmp ecx, 0x2547
je 0x478d46
cmp ecx, 0x2830
je 0x4790a9
cmp ecx, 0x2841
mov edi, eax
jne case.0x478907.92
test byte [esi], 2
je 0x478b98
cmp dword [esi + 0x1148], 0
mov edi, 0xffffffff
jne case.0x478907.92
xor edi, edi
mov dword [esi + 0x170], 0xdb00
jmp 0x47b049
cmp ecx, 0x2941
je 0x4790ce
cmp ecx, 0x2942
je 0x4790f3
cmp ecx, 0x2955
mov edi, eax
jne case.0x478907.92
test byte [esi + 1], 0x40
jne 0x4794fd
xor edi, edi
mov dword [esi + 0xe44], 0
jmp 0x47b049
mov ecx, ebx
shl ecx, 8
add ecx, eax
cmp ecx, 0x168
jg 0x4791c4
lea eax, [ecx - 0x40]
cmp eax, 0x38
ja case.default.0x478bcb
xor edi, edi
dec edi
jmp dword [eax*4 + 0x41863c]
test byte [esi + 1], 0x20
je 0x478b98
mov eax, dword [esi + 0x1ac]
mov ecx, dword [esi + 0x12c]
cmp eax, ecx
cmova eax, ecx
mov dword [esi + 0x1ac], eax
lea edx, [eax - 1]
test eax, eax
cmove edx, eax
mov ebx, dword [esi + 0x6c]
xor eax, eax
mov edi, dword [esi + 0x128]
test edx, edx
cmovs edx, eax
cmp edx, ecx
lea ecx, [ecx - 1]
cmovl ecx, edx
test ebx, ebx
cmovs ebx, eax
mov dword [esi + 0x70], ecx
cmp ebx, edi
lea edi, [edi - 1]
cmovl edi, ebx
mov dword [esi + 0x6c], edi
mov dword [esi + 0x8c], eax
mov dword [esi + 0x154], 1
mov edi, 0xffffffff
cmp dword [esi + 0x109c], eax
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
dec eax
mov dword [esi + 0x70], eax
mov dword [esi + 0x154], 1
mov edi, 0xffffffff
cmp dword [esi + 0x109c], 0
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
cmp eax, 0x3ffffff
ja 0x478cb8
cmp dword [esi + 0xe8], 5
jl 0x478cb8
mov dword [esp + 0x5c], 0xd961
mov eax, 0xd961
mov dword [esp + 0x5c], 0xd961
jmp 0x478ce3
mov edi, eax
or edi, 1
cmp edi, 0x2029
jne 0x478ccf
mov dword [esp + 0x5c], 0x85
jmp 0x478cd6
cmp eax, 0x9f
ja 0x478d27
mov dword [esp + 0x5c], 0xfffd
mov eax, 0xfffd
cmp eax, 0xfeff
mov edi, 0xffffffff
je 0x47b0c3
mov edx, eax
mov edi, 0xffffffff
and edx, 0xffffff80
cmp edx, 0xe0000
je 0x47b0c3
or eax, 1
cmp eax, 0xffff
jne case.default.0x477a96
mov dword [esp + 0x5c], 0xd961
xor edi, edi
dec edi
jmp case.0x4778d6.0
and edx, 0xfffff800
cmp edx, 0xd800
je 0x478ca9
cmp eax, 0x110000
jae 0x478ca9
jmp 0x478ce3
test byte [esi + 1], 0x40
je 0x4790fc
cmp dword [esi + 0x1148], 0
mov edi, eax
jne case.0x478907.92
xor edi, edi
mov dword [esi + 0xdc], 1
jmp 0x47b049
mov eax, edx
and eax, 0xfc
cmp eax, 0xf8
jne 0x479190
mov eax, 4
and edx, 3
jmp 0x4791aa
mov eax, dword [esp]
cmp dword [eax], 2
jne 0x478da5
mov eax, dword [esp]
mov dword [eax], 1
jmp 0x47b047
mov dword [esi + 0xe44], 7
mov dword [esi + 0x234], 0
jmp 0x47b047
push dword [esi + 0x1088]
call fcn.0048c094
add esp, 4
push esi
jmp 0x4786a4
test byte [esi], 2
je 0x4786ac
xor edx, edx
mov ecx, esi
call fcn.0047d362
mov dword [esi + 0x154], 1
mov edi, 0xffffffff
cmp dword [esi + 0x109c], 0
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
test byte [esi], 2
je 0x4786ac
mov dword [esi + 0x144], 1
jmp 0x47b047
test byte [esi], 2
je 0x4786ac
mov dword [esi + 0x144], 0
jmp 0x47b047
xor eax, eax
mov dword [esi + 0xe44], 2
mov dword [esi + 0x22c], 1
mov dword [esi + 0x1ac], eax
mov dword [esi + 0x230], eax
jmp 0x47b047
test byte [esi + 1], 0x40
je 0x4786ac
mov dword [esi + 0xe44], 3
mov dword [esi + 0x1ac], 0
jmp 0x47b047
test byte [esi], 2
je 0x4786ac
xor edx, edx
mov ecx, esi
inc edx
call fcn.004740d3
mov eax, dword [esi + 0x1084]
test eax, eax
je 0x478eb7
push eax
call fcn.0043c0cc
add esp, 4
cmp dword [esi + 0xb4], 0
mov eax, 0xffffffff
je 0x478ef1
cmp dword [esi + 0x114c], 0
jne 0x478ee7
push dword [esi + 0x128]
push 0x50
push dword [esi + 0x1088]
call fcn.00489f9b
xor eax, eax
dec eax
add esp, 0xc
mov dword [esi + 0xb4], 0
cmp dword [esi + 0x1168], 0
je 0x478f01
mov dword [esi + 0x10], 0
mov dword [esi + 0x154], 1
mov edi, eax
cmp dword [esi + 0x109c], 0
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
test byte [esi], 2
je 0x4790fc
mov eax, dword [esi + 0x128]
test eax, eax
jle 0x478fd8
xor edi, edi
mov ecx, esi
mov edx, edi
push 1
push 0xd3d
call fcn.00474f94
add esp, 8
mov ecx, eax
mov eax, dword [esi + 0x12c]
cmp eax, dword [ecx + 4]
mov dword [esp + 8], ecx
mov dword [esp + 0x18], edi
je 0x478f8b
mov edx, dword [esp + 8]
mov ecx, esi
push eax
call fcn.0047be4d
mov ecx, dword [esp + 0xc]
add esp, 4
mov eax, dword [esi + 0x12c]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0xc]
test eax, eax
jle 0x478fc0
xor ebx, ebx
xor edi, edi
mov edx, edi
push ebp
call fcn.0047bc7e
mov ecx, dword [esp + 0xc]
add esp, 4
mov eax, dword [ecx + 0x14]
inc edi
mov dword [eax + ebx], 0x45
add ebx, 0xc
cmp edi, dword [esi + 0x12c]
jl 0x478f9b
mov word [ecx], 0
mov edi, dword [esp + 0x18]
mov eax, dword [esi + 0x128]
inc edi
cmp edi, eax
jl 0x478f4a
cmp dword [esi + 0x1168], 0
je 0x478fe8
mov dword [esi + 0x10], 0
mov dword [esi + 0x154], 1
cmp dword [esi + 0x109c], 0
jne 0x479021
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
call fcn.0047d9f4
add esp, 0xc
mov dword [esi + 0x10a0], eax
mov eax, dword [esi + 0x128]
mov ecx, dword [esi + 0xe5c]
test ecx, ecx
jle 0x4796be
mov ecx, dword [esp + 4]
cmp dword [ecx], eax
jge 0x4796e0
xor ecx, ecx
xor edi, edi
mov dword [esi + 0xe48], ecx
dec edi
mov eax, dword [esp + 4]
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ecx
jmp 0x47b0c3
test byte [esi], 2
je 0x4790fc
cmp dword [esi + 0x1148], 0
mov edi, eax
jne case.0x478907.92
xor edi, edi
mov dword [esi + 0x170], 0xd800
jmp 0x47b049
test byte [esi + 1], 0x40
je 0x4790fc
cmp dword [esi + 0x1148], 0
mov edi, eax
jne case.0x478907.92
xor edi, edi
mov dword [esi + 0x170], 0xda00
jmp 0x47b049
test byte [esi], 2
je 0x4790fc
cmp dword [esi + 0x1148], 0
mov edi, eax
jne case.0x478907.92
xor edi, edi
mov dword [esi + 0x170], 0xd900
jmp 0x47b049
test byte [esi], 2
je 0x4790fc
cmp dword [esi + 0x1148], 0
mov edi, eax
jne case.0x478907.92
xor edi, edi
mov dword [esi + 0x174], 0xdb00
jmp 0x47b049
test byte [esi], 2
jne 0x479520
mov dword [esi + 0xe44], 0
mov edi, eax
jmp case.0x478907.92
test byte [esi], 2
je 0x4786ac
mov dword [esi + 0x70], 0
mov eax, dword [esi + 0x6c]
cmp eax, dword [esi + 0x80]
jne 0x47960a
mov edx, dword [esi + 0x7c]
xor edi, edi
mov ecx, esi
inc edi
push edi
push edi
push eax
call fcn.0047b914
add esp, 0xc
jmp 0x479619
test byte [esi], 2
je 0x4786ac
mov eax, dword [esi + 0xe40]
mov ecx, dword [esi + 0x70]
mov byte [eax + ecx], 1
jmp 0x47b047
test byte [esi], 2
je 0x4786ac
mov edx, dword [esi + 0x6c]
cmp edx, dword [esi + 0x7c]
jne 0x479653
mov ecx, esi
push 1
push 0xffffffffffffffff
push dword [esi + 0x80]
call fcn.0047b914
add esp, 0xc
xor edi, edi
dec edi
jmp 0x479660
mov eax, edx
and eax, 0xfe
cmp eax, 0xfc
jne 0x478d17
mov eax, 5
and edx, 1
mov dword [esi + 0xe0], eax
mov dword [esi + 0xe8], eax
xor edi, edi
mov dword [esi + 0xe4], edx
dec edi
jmp 0x47b0c3
cmp ecx, 0x3d42
jle 0x479540
lea eax, [ecx - 0x3d43]
cmp eax, 9
ja case.default.0x4791e2
xor edi, edi
dec edi
jmp dword [eax*4 + 0x418720]
test byte [esi + 1], 0x10
je 0x4786ac
cmp dword [esi + 0x22c], 2
mov edi, 0xffffffff
jl case.0x478907.92
mov eax, dword [esi + 0x1ac]
xor ecx, ecx
cmp eax, dword [esi + 0x1b0]
setbe cl
mov dword [esi + 0xb0], ecx
jmp 0x47b047
mov eax, dword [esi + 0x6c]
mov edx, dword [esi + 0x70]
mov ecx, esi
dec eax
push 1
push eax
jmp 0x479259
mov eax, dword [esi + 0x6c]
mov edx, dword [esi + 0x70]
mov ecx, esi
inc eax
xor edi, edi
inc edi
push edi
push eax
jmp 0x479259
mov edx, dword [esi + 0x70]
mov ecx, esi
inc edx
xor eax, eax
inc eax
push eax
push dword [esi + 0x6c]
jmp 0x479259
mov edx, dword [esi + 0x70]
mov ecx, esi
dec edx
push 1
push dword [esi + 0x6c]
call fcn.0047ce9e
jmp 0x4794c5
mov ecx, dword [esi + 0x12c]
mov eax, dword [esi + 0x128]
xor edi, edi
test ecx, ecx
lea ecx, [ecx - 1]
cmovg ecx, edi
test eax, eax
lea eax, [eax - 1]
cmovg eax, edi
mov dword [esi + 0x70], ecx
xor edx, edx
mov ecx, esi
mov dword [esi + 0x6c], eax
mov dword [esi + 0x8c], edi
push 1
push edi
jmp 0x479455
mov dword [esi + 0x94], 0
mov dword [esi + 0x170], 0xd900
jmp 0x47b047
mov dword [esi + 0x94], 0
mov dword [esi + 0x170], 0xd800
jmp 0x47b047
mov ecx, dword [esi + 0x12c]
mov eax, dword [esi + 0x128]
xor edx, edx
test ecx, ecx
lea ecx, [ecx - 1]
cmovg ecx, edx
test eax, eax
lea eax, [eax - 1]
cmovg eax, edx
mov dword [esi + 0x70], ecx
mov dword [esi + 0x6c], eax
mov dword [esi + 0x8c], edx
jmp 0x47b047
mov eax, dword [esi + 0x6c]
test eax, eax
je 0x479695
jle 0x4796af
dec eax
mov dword [esi + 0x6c], eax
jmp 0x4796af
xor edi, edi
xor edx, edx
mov ecx, esi
push 1
push edi
jmp 0x479455
xor edx, edx
mov ecx, esi
inc edx
push 1
push 0
jmp 0x4794c0
mov edx, dword [esi + 0x6c]
mov eax, dword [esi + 0x80]
mov edi, 0xffffffff
cmp edx, eax
jg case.0x478907.92
mov ecx, esi
push 0
push 0xffffffffffffffff
push eax
jmp 0x47936d
mov edx, dword [esi + 0x6c]
mov eax, dword [esi + 0x80]
mov edi, 0xffffffff
cmp edx, eax
jg case.0x478907.92
xor edi, edi
mov ecx, esi
inc edi
push edi
push edi
push eax
call fcn.0047b914
jmp 0x478ad1
xor eax, eax
mov edi, 0xffffffff
mov dword [esi + 0xd8], eax
mov dword [esi + 0x40], 0x20500
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 8]
mov dword [edx + 8], ecx
movsd xmm0, qword [esi]
mov esi, dword [esp + 0xc]
movsd qword [edx], xmm0
cmp dword [esi + 0xb8], eax
je case.0x478907.92
mov dword [esi + 0x58], 0x20500
jmp 0x47b047
or byte [esi + 0x42], 8
jmp 0x47b047
mov dword [esi + 0xd8], 0
and byte [esi + 0x42], 0xfb
jmp 0x47b047
mov dword [esi + 0xd8], 1
or byte [esi + 0x42], 4
jmp 0x47b047
and byte [esi + 0x42], 0xf7
jmp 0x47b047
mov dword [esi + 0xe44], 0xa
jmp 0x47b047
mov eax, dword [esi + 0x1084]
mov edi, 0xffffffff
test eax, eax
je case.0x478907.92
push 0
push 3
push 0x418390
push eax
call fcn.0043c15b
add esp, 0x10
jmp 0x47b047
mov dword [esi + 0xe44], 0xc
jmp 0x47b047
mov dword [esi + 0xe44], 0xd
jmp 0x47b047
xor edi, edi
xor edx, edx
mov ecx, esi
push edi
push 1
call fcn.0047b6c6
add esp, 8
cmp dword [esi + 0x1168], edi
mov edi, 0xffffffff
je case.0x478907.92
mov dword [esi + 0x10], 0
jmp 0x47b047
mov dword [esi + 0xb0], 1
jmp 0x47b047
mov dword [esi + 0xb0], 0
jmp 0x47b047
xor edx, edx
mov ecx, esi
inc edx
push edx
push edx
call fcn.0047b6c6
add esp, 8
xor eax, eax
mov dword [esi + 0x70], eax
mov dword [esi + 0x8c], eax
jmp 0x47b047
xor edx, edx
mov ecx, esi
inc edx
push 0
push 1
call fcn.0047b6c6
add esp, 8
jmp 0x47b047
or byte [esi + 0x42], 0x10
jmp 0x47b047
and byte [esi + 0x42], 0xef
jmp 0x47b047
mov dword [esi + 0x88], 1
jmp 0x47b047
mov dword [esi + 0x88], 0
jmp 0x47b047
cmp dword [esi + 0x1148], 0
mov edi, 0xffffffff
jne case.0x478907.92
xor edi, edi
mov dword [esi + 0x174], 0xda00
jmp 0x47b049
cmp dword [esi + 0x1148], 0
mov edi, eax
jne case.0x478907.92
xor edi, edi
mov dword [esi + 0x174], 0xd800
jmp 0x47b049
cmp ecx, 0x226f
jle 0x47974b
cmp ecx, 0x2270
je 0x479b39
cmp ecx, 0x247c
je 0x479b67
cmp ecx, 0x2a7c
mov edi, 0xffffffff
jne case.0x478907.92
test byte [esi], 0x40
je 0x4786ac
cmp dword [esi + 0x22c], 1
mov edi, 0xffffffff
jne case.0x478907.92
mov eax, dword [esp]
mov edi, 0xffffffff
mov eax, dword [eax]
test eax, eax
je case.0x478907.92
cmp dword [esi + 0x114c], 0
jne 0x47903b
push eax
push dword [esi + 0x12c]
push dword [esi + 0x1088]
jmp 0x479baf
mov ecx, dword [esi + 0x128]
dec ecx
cmp eax, ecx
jge 0x4795d0
inc eax
mov dword [esi + 0x6c], eax
xor eax, eax
mov edi, 0xffffffff
mov dword [esi + 0x8c], eax
mov dword [esi + 0x154], 1
cmp dword [esi + 0x109c], eax
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
mov ecx, dword [esi + 0x128]
dec ecx
cmp eax, ecx
jge 0x479619
inc eax
mov dword [esi + 0x6c], eax
xor eax, eax
mov edi, 0xffffffff
mov dword [esi + 0x8c], eax
mov dword [esi + 0x154], 1
cmp dword [esi + 0x109c], eax
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
test edx, edx
mov edi, 0xffffffff
jle 0x479660
dec edx
mov dword [esi + 0x6c], edx
xor eax, eax
mov dword [esi + 0x8c], eax
mov dword [esi + 0x154], 1
cmp dword [esi + 0x109c], eax
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
mov eax, dword [esi + 0x128]
mov ecx, esi
dec eax
xor edi, edi
xor edx, edx
dec edi
push 1
push edi
push eax
call fcn.0047b914
add esp, 0xc
mov dword [esi + 0x8c], 0
jmp 0x47b047
mov edi, 0xffffffff
jne case.0x478907.92
cmp dword [esi + 0xe60], 0
mov edi, 0xffffffff
jg 0x47902f
jmp case.0x478907.92
mov edi, 0xffffffff
jne case.0x478907.92
cmp dword [esi + 0xe58], 0
mov edi, 0xffffffff
jns case.0x478907.92
jmp 0x47903b
cmp ecx, 0x3d63
je 0x479bbc
cmp ecx, 0x3e63
mov edi, 0xffffffff
jne case.0x478907.92
test byte [esi + 1], 0x40
je 0x478b98
mov eax, dword [esi + 0x1084]
mov edi, 0xffffffff
test eax, eax
je case.0x478907.92
push 0
push 0xb
push str.e__0_136_0c
push eax
jmp 0x479421
cmp ecx, 0x169
je case.0x478bcb.105
cmp ecx, 0x16c
mov edi, 0xffffffff
jne case.0x478907.92
test byte [esi], 2
je 0x478b98
cmp dword [esi + 0x22c], 0
mov edi, 0xffffffff
jle case.0x478907.92
mov edx, dword [esi + 0x1ac]
mov ecx, esi
push 0
push ebx
call fcn.0047d460
add esp, 8
cmp dword [esi + 0x22c], 2
mov edi, 0xffffffff
jl case.0x478907.92
mov edi, 0x6c
mov edx, dword [esi + edi*4]
mov ecx, esi
push 0
push dword [esi + 0x230]
call fcn.0047d460
add esp, 8
lea eax, [edi + 1]
add edi, 0xffffff96
cmp edi, dword [esi + 0x22c]
mov edi, eax
jl 0x4797ad
jmp 0x47b047
test byte [esi], 2
je 0x478b98
cmp dword [esi + 0x22c], 1
mov edi, 0xffffffff
jne case.0x478907.92
mov eax, dword [esp]
mov eax, dword [eax]
cmp eax, 5
jne 0x47ab41
push 0x81
push dword [esi + 0x1094]
call fcn.00431a8c
add esp, 8
mov edi, eax
cmp byte [edi], 0
je 0x47ab3c
mov dword [esi + 0xec], 1
xor ecx, ecx
xor eax, eax
cmp dword [esi + 0x230], ecx
sete al
mov dword [esi + 0xf0], eax
mov dword [esi + 0xf4], ecx
push dword [esp + 0x2c]
call fcn.0043ff54
add esp, 4
push edi
call fcn.00492c6c
add esp, 4
xor edi, edi
mov dword [esi + 0x104], eax
jmp 0x47b049
cmp dword [esi + 0x22c], 1
jg 0x479876
mov eax, dword [esp + 0x28]
mov dword [eax], 0
mov eax, dword [esi + 0x1ac]
mov ecx, dword [esi + 0x128]
mov edx, dword [esi + 0x12c]
cmp eax, ecx
cmova eax, ecx
mov ecx, dword [esi + 0x1b0]
cmp ecx, edx
cmova ecx, edx
mov edx, dword [esi + 0x84]
xor ebx, ebx
mov dword [esi + 0x1ac], eax
mov dword [esi + 0x1b0], ecx
cmp edx, 0
setne bl
xor edi, edi
add ebx, ebx
cmp edx, 0
mov edx, 0
je 0x4798c3
mov edx, dword [esi + 0x7c]
xor ebp, ebp
inc ebp
test eax, eax
cmovne ebp, eax
test ecx, ecx
lea eax, [edx + ebp - 1]
lea edx, [ecx - 1]
cmove edx, ecx
mov ecx, esi
push ebx
push eax
call fcn.0047ce9e
add esp, 8
mov dword [esi + 0x154], 1
cmp dword [esi + 0x109c], edi
mov edi, 0xffffffff
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
cmp ecx, 0x168
mov edi, 0xffffffff
jne case.0x478907.92
test byte [esi], 2
je 0x478b98
cmp dword [esi + 0x22c], 0
mov edi, 0xffffffff
jle case.0x478907.92
mov edx, dword [esi + 0x1ac]
mov ecx, esi
push 1
push ebx
call fcn.0047d460
add esp, 8
cmp dword [esi + 0x22c], 2
mov edi, 0xffffffff
jl case.0x478907.92
xor ebx, ebx
mov edi, 0x6c
inc ebx
mov edx, dword [esi + edi*4]
mov ecx, esi
push ebx
push dword [esi + 0x230]
call fcn.0047d460
add esp, 8
lea eax, [edi + 1]
add edi, 0xffffff96
cmp edi, dword [esi + 0x22c]
mov edi, eax
jl 0x47996e
jmp 0x47b047
test byte [esi + 1], 0x10
je 0x4786ac
xor edi, edi
mov ecx, esi
mov dword [esi + 0xc4], edi
call fcn.00474e5f
mov eax, dword [esi + 0x40]
mov ecx, eax
or eax, 0x200000
and ecx, 0xffdfffff
cmp dword [esi + 0x1ac], edi
cmove eax, ecx
mov dword [esi + 0x40], eax
jmp 0x47b047
test byte [esi + 1], 0x10
je 0x4786ac
xor eax, eax
cmp dword [esi + 0x1ac], 0
setne al
jmp 0x477d56
test byte [esi + 1], 0x10
je 0x4786ac
mov eax, dword [esp]
mov edi, 0xffffffff
mov ecx, dword [eax]
cmp ecx, 0xf
ja case.0x478907.92
mov eax, ecx
and ecx, 8
mov edi, 0xfffffe00
and eax, 7
movsx eax, byte [eax + 0x417c58]
or ecx, eax
mov eax, dword [esi + 0x40]
and eax, edi
or eax, ecx
mov dword [esi + 0x40], eax
mov edx, dword [esi + 0x3c]
and edx, edi
mov edi, 0xffffffff
or edx, ecx
mov dword [esi + 0x3c], edx
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 8]
mov dword [edx + 8], ecx
movsd xmm0, qword [esi]
mov esi, dword [esp + 0xc]
movsd qword [edx], xmm0
cmp dword [esi + 0xb8], 0
je case.0x478907.92
and eax, 0x3ffff
jmp 0x477e90
test byte [esi + 1], 0x10
je 0x4786ac
mov eax, dword [esp]
mov edi, 0xffffffff
mov eax, dword [eax]
cmp eax, 0xf
ja case.0x478907.92
mov ecx, eax
and eax, 8
mov edi, 0xfffc01ff
and ecx, 7
movsx ecx, byte [ecx + 0x417c58]
or eax, ecx
mov ecx, dword [esi + 0x40]
shl eax, 9
and ecx, edi
or ecx, eax
mov dword [esi + 0x40], ecx
mov edx, dword [esi + 0x3c]
and edx, edi
mov edi, 0xffffffff
or edx, eax
mov dword [esi + 0x3c], edx
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 8]
mov dword [edx + 8], eax
movsd xmm0, qword [esi]
mov esi, dword [esp + 0xc]
movsd qword [edx], xmm0
cmp dword [esi + 0xb8], 0
je case.0x478907.92
and ecx, 0x3ffff
mov dword [esi + 0x58], ecx
jmp 0x47b047
test byte [esi + 1], 0x10
je 0x4786ac
xor eax, eax
cmp dword [esi + 0x1ac], 0
mov edi, 0xffffffff
sete al
mov dword [esi + 0xb8], eax
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
jne case.0x478907.92
mov eax, dword [esi + 0x40]
mov ecx, 0x3ffff
and eax, ecx
jmp 0x477e90
mov eax, dword [esp]
mov eax, dword [eax]
cmp eax, 0x29
jle 0x47a738
cmp eax, 0x3c
jg 0x47a9e1
cmp eax, 0x2a
je 0x47aaf3
cmp eax, 0x32
je 0x47ab90
jmp 0x47ab1c
test byte [esi + 1], 1
mov eax, 0xffffffff
je 0x4790fc
cmp dword [esi + 0x22c], 1
mov edi, eax
jg case.0x478907.92
cmp dword [esi + 0x114c], 0
jne 0x47903b
cmp dword [esi + 0x1ac], 0
mov eax, dword [esp]
cmove eax, dword [esp + 0x24]
push dword [esi + 0x128]
push dword [eax]
push dword [esi + 0x1088]
call fcn.00489f9b
add esp, 0xc
jmp 0x47903b
test byte [esi + 1], 0x10
je 0x4786ac
mov eax, dword [esp]
mov ecx, 1
mov eax, dword [eax]
test eax, eax
je 0x47ab2f
cmp eax, 2
je 0x479bed
cmp eax, 1
mov edi, 0xffffffff
jne case.0x478907.92
xor ecx, ecx
xor eax, eax
mov dword [esi + 0x158], ecx
inc eax
jmp 0x47ab31
test byte [esi], 8
je 0x478b98
mov eax, dword [esi + 0x12c]
mov ecx, dword [esi + 0x1ac]
cmp ecx, eax
cmova ecx, eax
xor edx, edx
inc edx
test ecx, ecx
mov dword [esi + 0x1ac], ecx
cmovne edx, ecx
mov ecx, esi
call fcn.0047cf1b
mov dword [esi + 0x154], 1
xor eax, eax
mov edi, 0xffffffff
cmp dword [esi + 0x109c], eax
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
mov eax, dword [esi + 0x1ac]
mov ecx, dword [esi + 0x128]
cmp eax, ecx
cmova eax, ecx
xor edi, edi
mov ecx, esi
mov dword [esi + 0x1ac], eax
inc edi
test eax, eax
mov ebx, dword [esi + 0x6c]
mov edx, dword [esi + 0x70]
cmove eax, edi
sub ebx, eax
push edi
push ebx
call fcn.0047ce9e
add esp, 8
mov dword [esi + 0x154], edi
xor eax, eax
mov edi, 0xffffffff
cmp dword [esi + 0x109c], eax
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
mov eax, dword [esi + 0x1ac]
mov ecx, dword [esi + 0x12c]
cmp eax, ecx
cmova eax, ecx
xor edi, edi
mov ecx, esi
mov dword [esi + 0x1ac], eax
inc edi
test eax, eax
mov edx, dword [esi + 0x70]
cmove eax, edi
sub edx, eax
push edi
push dword [esi + 0x6c]
call fcn.0047ce9e
add esp, 8
mov dword [esi + 0x154], edi
xor eax, eax
mov edi, 0xffffffff
cmp dword [esi + 0x109c], eax
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
test byte [esi + 1], 0x20
je 0x478b98
mov eax, dword [esi + 0x1ac]
mov edx, dword [esi + 0x128]
mov ecx, dword [esi + 0x6c]
cmp eax, edx
cmova eax, edx
xor edi, edi
inc edi
test eax, eax
mov dword [esi + 0x1ac], eax
cmove eax, edi
xor ebx, ebx
xor edx, edx
add eax, ecx
mov ecx, esi
push edi
push eax
call fcn.0047ce9e
add esp, 8
mov dword [esi + 0x154], edi
mov edi, 0xffffffff
cmp dword [esi + 0x109c], ebx
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
test byte [esi + 1], 0x20
je 0x478b98
mov eax, dword [esi + 0x1ac]
mov ecx, dword [esi + 0x128]
mov edi, dword [esi + 0x6c]
cmp eax, ecx
cmova eax, ecx
xor ebx, ebx
mov ecx, esi
inc ebx
test eax, eax
mov dword [esi + 0x1ac], eax
cmove eax, ebx
xor ebp, ebp
xor edx, edx
sub edi, eax
push ebx
push edi
call fcn.0047ce9e
add esp, 8
mov dword [esi + 0x154], ebx
mov edi, 0xffffffff
cmp dword [esi + 0x109c], ebp
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
mov eax, dword [esp]
mov eax, dword [eax]
cmp eax, 3
jne 0x47a6d4
cmp dword [esi + 0x1154], 0
mov eax, 0xffffffff
jne 0x47a6f8
push esi
call fcn.00474f14
xor eax, eax
dec eax
add esp, 4
jmp 0x47a6f8
mov eax, dword [esi + 0x1ac]
xor ebx, ebx
mov ecx, esi
inc eax
cmp eax, 3
cmovbe ebx, eax
mov eax, ebx
shr ebx, 1
and eax, 1
and ebx, 1
xor edi, edi
inc edi
mov edx, edi
push eax
push ebx
call fcn.0047b6c6
add esp, 8
mov dword [esi + 0x154], edi
mov edi, 0xffffffff
cmp dword [esi + 0x109c], 0
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
test byte [esi], 8
je 0x478b98
mov ecx, dword [esi + 0x1ac]
mov eax, dword [esi + 0x128]
cmp ecx, eax
cmova ecx, eax
mov dword [esi + 0x1ac], ecx
mov edx, dword [esi + 0x6c]
mov eax, dword [esi + 0x80]
cmp edx, eax
jg 0x479ecc
mov edi, ecx
neg edi
cmp ecx, 1
mov ecx, esi
sbb ebx, ebx
or ebx, edi
xor edi, edi
push edi
push ebx
push eax
call fcn.0047b914
add esp, 0xc
mov dword [esi + 0x154], 1
mov edi, 0xffffffff
cmp dword [esi + 0x109c], 0
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
test byte [esi], 8
je 0x478b98
mov ecx, dword [esi + 0x1ac]
mov eax, dword [esi + 0x128]
cmp ecx, eax
cmova ecx, eax
mov dword [esi + 0x1ac], ecx
mov edx, dword [esi + 0x6c]
mov eax, dword [esi + 0x80]
cmp edx, eax
jg 0x479f42
xor edi, edi
inc edi
test ecx, ecx
cmovne edi, ecx
mov ecx, esi
push 1
push edi
push eax
call fcn.0047b914
add esp, 0xc
mov dword [esi + 0x154], 1
mov edi, 0xffffffff
cmp dword [esi + 0x109c], 0
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
test byte [esi], 8
je 0x478b98
mov eax, dword [esi + 0x12c]
mov ecx, dword [esi + 0x1ac]
cmp ecx, eax
cmova ecx, eax
mov eax, ecx
mov dword [esi + 0x1ac], ecx
neg eax
xor edi, edi
inc edi
cmp ecx, edi
mov ecx, esi
sbb edx, edx
or edx, eax
call fcn.0047cf1b
mov dword [esi + 0x154], edi
xor eax, eax
mov edi, 0xffffffff
cmp dword [esi + 0x109c], eax
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
mov ecx, dword [esi + 0x128]
mov eax, dword [esi + 0x1ac]
cmp eax, ecx
cmova eax, ecx
mov dword [esi + 0x1ac], eax
test byte [esi + 1], 0x10
je 0x4786ac
mov edx, dword [esi + 0x7c]
xor edi, edi
mov ecx, esi
inc edi
test eax, eax
cmove eax, edi
push edi
push eax
push dword [esi + 0x80]
call fcn.0047b914
add esp, 0xc
xor eax, eax
mov dword [esi + 0x8c], eax
mov dword [esi + 0x154], edi
mov edi, 0xffffffff
cmp dword [esi + 0x109c], eax
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
mov ecx, dword [esi + 0x128]
mov eax, dword [esi + 0x1ac]
cmp eax, ecx
cmova eax, ecx
mov dword [esi + 0x1ac], eax
test byte [esi + 1], 0x10
je 0x4786ac
mov ecx, eax
mov edx, dword [esi + 0x7c]
neg ecx
xor edi, edi
inc edi
cmp eax, edi
sbb eax, eax
or eax, ecx
mov ecx, esi
push edi
push eax
push dword [esi + 0x80]
call fcn.0047b914
add esp, 0xc
xor eax, eax
mov dword [esi + 0x8c], eax
mov dword [esi + 0x154], edi
mov edi, 0xffffffff
cmp dword [esi + 0x109c], eax
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
test byte [esi], 1
je 0x4786ac
mov eax, dword [esi + 0x1ac]
mov ecx, dword [esi + 0x12c]
cmp eax, ecx
cmova eax, ecx
xor edi, edi
mov ecx, esi
mov dword [esi + 0x1ac], eax
inc edi
test eax, eax
mov edx, dword [esi + 0x6c]
mov ebx, dword [esi + 0x70]
cmovne edi, eax
push 1
push 0x1035
call fcn.00474f94
add esp, 8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 0x6c]
mov ebp, dword [esi + 0x12c]
mov dword [esp + 8], ecx
mov ecx, esi
mov edx, dword [esi + 0x70]
mov dword [esp + 0x38], ebp
sub ebp, edx
mov dword [esp + 0x3c], edx
cmp edi, ebp
cmovle ebp, edi
push dword [esp + 8]
call fcn.0047bbd8
add esp, 4
mov edx, dword [esi + 0x70]
mov ecx, esi
add edx, ebp
push dword [esi + 0x6c]
call fcn.0047bbd8
mov edx, dword [esp + 0x40]
add esp, 4
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0xe5c], eax
jle 0x47aa04
lea eax, [ebp + edx]
mov ecx, dword [esp + 4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 8]
cmp dword [ecx], eax
jl 0x47a185
jne 0x47aa15
mov eax, dword [esp + 0x34]
cmp dword [esi + 0xe58], eax
jge 0x47aa15
xor eax, eax
mov dword [esi + 0xe48], eax
mov ecx, dword [esp + 4]
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov dword [ecx + 0xc], eax
mov dword [ecx + 8], eax
jmp 0x47aa15
test byte [esi + 1], 0x40
je 0x4786ac
mov edx, dword [esi + 0x1ac]
mov eax, dword [esi + 0x12c]
cmp edx, eax
cmova edx, eax
xor edi, edi
mov dword [esi + 0x1ac], edx
inc edi
test edx, edx
mov ecx, dword [esi + 0x70]
mov eax, dword [esi + 0x6c]
cmovne edi, edx
test edi, edi
mov edx, ecx
jle 0x47a20e
mov edx, ecx
test edx, edx
jle 0x47a20e
lea ebx, [edx - 1]
cmp edx, 1
mov edx, ebx
mov dword [esi + 0x70], ebx
je 0x47a206
mov edx, dword [esi + 0xe40]
cmp byte [edx + ebx], 0
jne 0x47a204
lea edx, [ebx - 1]
cmp ebx, 2
mov ebx, edx
mov dword [esi + 0x70], edx
jge 0x47a1e9
jmp 0x47a206
mov edx, ebx
cmp edi, 1
lea edi, [edi - 1]
jg 0x47a1d8
cmp dword [esi + 0xe5c], eax
jle 0x47aa73
mov ecx, dword [esp + 4]
cmp dword [ecx], eax
jl 0x47a627
mov edi, 0xffffffff
jne case.0x478907.92
cmp dword [esi + 0xe58], edx
mov edi, 0xffffffff
jl 0x47a627
jmp case.0x478907.92
test byte [esi + 1], 0x20
je 0x478b98
mov edx, dword [esi + 0x1ac]
mov eax, dword [esi + 0x12c]
mov ecx, esi
cmp edx, eax
cmova edx, eax
xor edi, edi
inc edi
test edx, edx
mov dword [esi + 0x1ac], edx
cmove edx, edi
add edx, dword [esi + 0x70]
push edi
push dword [esi + 0x6c]
call fcn.0047ce9e
add esp, 8
mov dword [esi + 0x154], edi
xor eax, eax
mov edi, 0xffffffff
cmp dword [esi + 0x109c], eax
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
test byte [esi], 2
je 0x478b98
mov ebx, dword [esi + 0x1084]
mov edi, 0xffffffff
test ebx, ebx
je case.0x478907.92
mov edi, dword [esp + 0x1c]
push edi
call fcn.004a7f30
add esp, 4
push 0
push eax
push edi
push ebx
jmp 0x479421
test byte [esi + 1], 0x20
je 0x478b98
mov eax, dword [esi + 0x128]
mov ecx, dword [esi + 0x1ac]
mov edx, dword [esi + 0x84]
cmp ecx, eax
cmova ecx, eax
xor eax, eax
cmp edx, 0
setne al
xor edi, edi
mov dword [esi + 0x1ac], ecx
add eax, eax
cmp edx, 0
mov edx, 0
je 0x47a324
mov edx, dword [esi + 0x7c]
xor ebx, ebx
inc ebx
test ecx, ecx
cmovne ebx, ecx
mov ecx, esi
lea ebx, [edx + ebx - 1]
mov edx, dword [esi + 0x70]
push eax
push ebx
call fcn.0047ce9e
add esp, 8
mov dword [esi + 0x154], 1
cmp dword [esi + 0x109c], edi
mov edi, 0xffffffff
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
test byte [esi + 1], 0x20
je 0x478b98
mov eax, dword [esi + 0x1ac]
mov ecx, dword [esi + 0x128]
cmp eax, ecx
cmova eax, ecx
xor edi, edi
mov ecx, esi
inc edi
test eax, eax
mov dword [esi + 0x1ac], eax
cmove eax, edi
mov edx, dword [esi + 0x70]
add eax, dword [esi + 0x6c]
push edi
push eax
call fcn.0047ce9e
add esp, 8
mov dword [esi + 0x154], edi
xor eax, eax
mov edi, 0xffffffff
cmp dword [esi + 0x109c], eax
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
test byte [esi], 2
je 0x478b98
cmp dword [esi + 0x22c], 1
mov edi, 0xffffffff
jne case.0x478907.92
mov eax, dword [esp]
mov eax, dword [eax]
test eax, eax
je 0x47ab6d
cmp eax, 3
mov edi, 0xffffffff
jne case.0x478907.92
cmp dword [esi + 0x12c], 0
mov edi, 0xffffffff
jle case.0x478907.92
xor eax, eax
mov ecx, dword [esi + 0xe40]
mov byte [ecx + eax], 0
inc eax
cmp eax, dword [esi + 0x12c]
jl 0x47a426
jmp 0x47b047
mov eax, dword [esi + 0x22c]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
test eax, eax
jle 0x47a9ad
xor edi, edi
jmp 0x47a926
mov eax, dword [esi + 0x1084]
mov edi, 0xffffffff
test eax, eax
je case.0x478907.92
mov ecx, dword [esp]
mov ecx, dword [ecx]
cmp ecx, 5
je 0x47aae4
cmp ecx, 6
mov edi, 0xffffffff
jne case.0x478907.92
mov ecx, dword [esi + 0x70]
mov eax, dword [esi + 0x6c]
inc ecx
inc eax
push ecx
push eax
push str.e__d__dR
lea eax, [esp + 0x6c]
mov edi, eax
push edi
call fcn.00432778
add esp, 0x10
push edi
call fcn.004a7f30
add esp, 4
push 0
push eax
push edi
push dword [esi + 0x1084]
jmp 0x479421
test byte [esi], 2
je 0x478b98
mov ecx, dword [esi + 0x22c]
mov edi, 0xffffffff
cmp ecx, 2
jg case.0x478907.92
mov edx, dword [esi + 0x128]
mov edi, dword [esi + 0x1ac]
cmp edi, edx
cmova edi, edx
mov dword [esi + 0x1ac], edi
lea eax, [edi - 1]
mov ebx, dword [esi + 0x1b0]
cmp ebx, edx
cmova ebx, edx
test edi, edi
cmove eax, edi
cmp ecx, 2
mov edi, ebx
lea ecx, [edx - 1]
mov dword [esi + 0x1b0], ebx
cmovne edi, edx
test ebx, ebx
cmove edi, edx
dec edi
cmp edi, edx
cmovl ecx, edi
mov edi, 0xffffffff
cmp ecx, eax
jle case.0x478907.92
mov dword [esi + 0x7c], eax
mov dword [esi + 0x80], ecx
xor ecx, ecx
mov edi, 0xffffffff
mov dword [esi + 0x70], ecx
mov edx, dword [esi + 0x84]
test edx, edx
cmove eax, edx
mov dword [esi + 0x6c], eax
mov dword [esi + 0x154], 1
cmp dword [esi + 0x109c], ecx
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x6c]
mov edx, dword [esi + 0x70]
xor edi, edi
dec edi
mov dword [esi + 0x78], edx
mov dword [esi + 0x74], ecx
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x94]
mov dword [esi + 0x98], eax
mov ecx, dword [esi + 0xdc]
mov dword [esi + 0xa0], ecx
mov ecx, dword [esi + 0x8c]
mov dword [esi + 0xa4], ecx
mov eax, dword [esi + eax*4 + 0x170]
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0xd0]
mov dword [esi + 0xd4], eax
jmp case.0x478907.92
mov eax, dword [esi + 0x22c]
cmp eax, 1
jg 0x47aaa1
mov ecx, dword [esp]
mov ecx, dword [ecx]
lea edx, [ecx - 1]
cmp edx, 0x17
jb 0x47aa94
test byte [esi + 1], 1
je 0x478b98
cmp dword [esi + 0x114c], 0
jne 0x47a627
test ecx, ecx
mov eax, 0x18
cmovne eax, ecx
push eax
push dword [esi + 0x12c]
push dword [esi + 0x1088]
call fcn.00489f9b
add esp, 0xc
xor eax, eax
xor edi, edi
mov dword [esi + 0xe48], eax
dec edi
mov ecx, dword [esp + 4]
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov dword [ecx + 0xc], eax
mov dword [ecx + 8], eax
jmp 0x47b0c3
xor edx, edx
mov ecx, esi
call fcn.0047d362
mov dword [esi + 0x154], 1
mov edi, 0xffffffff
cmp dword [esi + 0x109c], 0
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
test byte [esi], 2
je 0x4786ac
mov ebp, dword [esi + 0x1084]
mov edi, 0xffffffff
test ebp, ebp
je case.0x478907.92
mov eax, dword [esp]
mov ebx, dword [eax]
cmp ebx, 1
ja 0x47b047
push 0x15
push str.e_2_1_1_112_112_1_0x
lea eax, [esp + 0x68]
mov edi, eax
push edi
call fcn.0049a1f0
add esp, 0xc
add ebx, 0x32
mov byte [esp + 0x62], bl
push 0
push 0x14
push edi
push ebp
jmp 0x479421
inc eax
xor ecx, ecx
cmp eax, 3
cmova eax, ecx
xor edx, edx
mov ecx, esi
mov edi, eax
shr eax, 1
and edi, 1
and eax, 1
push edi
push eax
call fcn.0047b6c6
add esp, 8
xor eax, eax
dec eax
cmp dword [esi + 0x1168], 0
je 0x47a708
mov dword [esi + 0x10], 0
mov dword [esi + 0x154], 1
mov edi, eax
cmp dword [esi + 0x109c], 0
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
test eax, eax
je 0x47a74e
cmp eax, 0x28
je 0x47aafe
cmp eax, 0x29
jne 0x47ab1c
mov dword [esi], 0xffff
jmp 0x47b047
mov ecx, dword [esi + 0x3c]
jmp 0x47a921
test byte [esi], 4
je 0x47a886
or byte [esi + 0x42], 4
jmp case.0x47a932.2
test byte [esi], 4
je 0x47a886
or byte [esi + 0x42], 0x20
jmp case.0x47a932.2
test byte [esi + 1], 0x10
je 0x47a886
mov dword [esi + 0xc4], 0
or byte [esi + 0x42], 0x20
mov ecx, esi
call fcn.00474e5f
mov eax, dword [esi + 0x22c]
jmp case.0x47a932.2
or byte [esi + 0x42], 0x10
jmp case.0x47a932.2
test byte [esi + 1], 0x10
je 0x47a886
cmp dword [esi + 0x1148], 0
jne case.0x47a932.2
mov dword [esi + 0xd0], 0
jmp case.0x47a932.2
test byte [esi + 1], 0x10
je 0x47a886
cmp dword [esi + 0x1148], 0
jne case.0x47a932.2
mov dword [esi + 0xd0], 1
jmp case.0x47a932.2
test byte [esi + 1], 0x10
je 0x47a886
cmp dword [esi + 0x1148], 0
jne case.0x47a932.2
mov dword [esi + 0xd0], 2
jmp case.0x47a932.2
test byte [esi + 1], 0x40
je 0x47a886
test byte [esi], 4
je 0x47a886
or byte [esi + 0x42], 8
jmp case.0x47a932.2
movzx ecx, word [esi]
test cx, 0x4010
je 0x47a886
and byte [esi + 0x42], 0xfb
jmp case.0x47a932.2
movzx ecx, word [esi]
test cx, 0x4010
je 0x47a886
and byte [esi + 0x42], 0xf7
jmp case.0x47a932.2
movzx ecx, word [esi]
test cx, 0x4010
je 0x47a886
and byte [esi + 0x42], 0xdf
jmp case.0x47a932.2
movzx ecx, word [esi]
test cx, 0x4010
je 0x47a886
and byte [esi + 0x42], 0xef
jmp case.0x47a932.2
mov dword [esi + 0xe44], 0
jmp case.0x47a932.2
lea ecx, [edi + 2]
cmp ecx, eax
jge case.0x47a932.2
cmp dword [esi + edi*4 + 0x1b0], 5
jne case.0x47a932.2
mov edx, 0xfffffe00
and edx, dword [esi + 0x40]
mov dword [esi + 0x40], edx
movzx edi, byte [esi + edi*4 + 0x1b4]
jmp 0x47a907
mov ecx, 0xfffffe00
and ecx, dword [esi + 0x40]
or ecx, 0x100
jmp 0x47a921
lea ecx, [edi + 2]
cmp ecx, eax
jge case.0x47a932.2
cmp dword [esi + edi*4 + 0x1b0], 5
jne case.0x47a932.2
mov edx, 0xfffc01ff
and edx, dword [esi + 0x40]
mov dword [esi + 0x40], edx
mov edi, dword [esi + edi*4 + 0x1b4]
shl edi, 9
and edi, 0x1fe00
or edi, edx
mov dword [esi + 0x40], edi
mov edi, ecx
jmp case.0x47a932.2
mov ecx, 0xfffc01ff
and ecx, dword [esi + 0x40]
or ecx, 0x20400
mov dword [esi + 0x40], ecx
jmp case.0x47a932.2
mov ecx, dword [esi + edi*4 + 0x1ac]
cmp ecx, 0x6b
ja case.0x47a932.2
jmp dword [ecx*4 + 0x41879c]
mov ecx, 0xfffffe00
and ecx, dword [esi + 0x40]
mov dword [esi + 0x40], ecx
mov edx, dword [esi + edi*4 + 0x1ac]
add edx, 0xffffffe2
jmp 0x47a99f
mov ecx, 0xfffc01ff
and ecx, dword [esi + 0x40]
mov dword [esi + 0x40], ecx
mov edx, dword [esi + edi*4 + 0x1ac]
shl edx, 9
add edx, 0xffffb000
jmp 0x47a99f
mov ecx, 0xfffffe00
and ecx, dword [esi + 0x40]
mov dword [esi + 0x40], ecx
mov edx, dword [esi + edi*4 + 0x1ac]
add edx, 0xffffffae
jmp 0x47a99f
mov ecx, 0xfffc01ff
and ecx, dword [esi + 0x40]
mov dword [esi + 0x40], ecx
mov edx, dword [esi + edi*4 + 0x1ac]
shl edx, 9
add edx, 0xffff4800
or edx, ecx
mov dword [esi + 0x40], edx
inc edi
cmp edi, eax
jl 0x47a926
mov eax, dword [ebp + 8]
mov edi, 0xffffffff
mov dword [ebx + 8], eax
movsd xmm0, qword [ebp]
movsd qword [ebx], xmm0
cmp dword [esi + 0xb8], 0
je case.0x478907.92
mov eax, 0x3ffff
and eax, dword [esi + 0x40]
xor edi, edi
dec edi
mov dword [esi + 0x58], eax
jmp case.0x478907.92
cmp eax, 0x3e
je 0x47ab09
cmp eax, 0x3d
jne 0x47ab1c
mov eax, dword [esi]
mov ecx, 0xfffffe00
and eax, ecx
or eax, 0xf
jmp 0x47ab15
jne 0x47aa15
mov eax, dword [esi + 0x70]
cmp dword [esi + 0xe60], eax
jg 0x47a15b
test ebp, ebp
mov ebp, dword [esp + 0x18]
mov eax, edx
je 0x47aa40
dec eax
not edi
sub eax, dword [esp + 0x38]
cmp eax, edi
cmovge edi, eax
inc edi
mov edx, ebx
inc ebx
mov ecx, ebp
push dword [esp + 0x10]
call fcn.0047bc7e
add esp, 4
inc edi
jne 0x47aa2c
mov dword [esi + 0x154], 1
mov edi, 0xffffffff
cmp dword [esi + 0x109c], 0
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
jmp 0x47b039
mov edi, 0xffffffff
jne case.0x478907.92
cmp dword [esi + 0xe60], ecx
mov edi, 0xffffffff
jg 0x47a21a
jmp case.0x478907.92
test eax, eax
mov edi, 0xffffffff
jle case.0x478907.92
mov ecx, dword [esp]
mov edi, 0xffffffff
mov ecx, dword [ecx]
dec ecx
cmp ecx, 0x16
ja case.0x478907.92
test byte [esi + 1], 0x40
je 0x478b98
cmp ecx, 0x14
mov edi, 0xffffffff
ja case.0x478907.92
xor edi, edi
dec edi
jmp dword [ecx*4 + 0x418748]
push 0
push dword [esi + 0x1088]
jmp 0x47ac15
push 0
push 4
push str.e_0n
push eax
jmp 0x479421
mov dword [esi], 0x1001
jmp 0x47b047
and dword [esi], 0x1ff
jmp 0x47b047
mov eax, dword [esi]
mov ecx, 0xfffffe00
and eax, ecx
or eax, 0x1f
mov dword [esi], eax
jmp 0x47b047
lea ecx, [eax - 0x3d]
cmp ecx, 8
ja 0x47ab82
or dword [esi], 0x1ff
jmp 0x47b047
xor eax, eax
mov dword [esi + 0xb0], eax
jmp 0x47b047
mov eax, dword [esp]
mov eax, dword [eax]
cmp eax, 4
mov edi, 0xffffffff
jne case.0x478907.92
cmp dword [esi + 0xec], 0
mov edi, 0xffffffff
je case.0x478907.92
mov ecx, esi
call fcn.00474d89
jmp 0x47b047
mov eax, dword [esi + 0xe40]
mov ecx, dword [esi + 0x70]
xor edi, edi
dec edi
mov byte [eax + ecx], 0
jmp case.0x478907.92
cmp eax, 0x32
mov edi, 0xffffffff
jne case.0x478907.92
mov dword [esi + 0xa40], 0x3f5b1b
cmp dword [esi + 0x22c], 2
mov ebx, dword [esp + 0x1c]
jl 0x47abf5
xor edi, edi
test edi, edi
je 0x47abc0
push ebx
call fcn.004a7f30
add esp, 4
mov word [esi + eax + 0xa40], 0x3b
push dword [esi + edi*4 + 0x1b0]
push 0x41838d
lea eax, [esp + 0x68]
mov ebp, eax
push ebp
call fcn.00432778
add esp, 0xc
push ebp
push ebx
call fcn.004a7c10
add esp, 8
lea eax, [edi + 1]
add edi, 2
cmp edi, dword [esi + 0x22c]
mov edi, eax
jl 0x47aba9
push ebx
call fcn.004a7f30
add esp, 4
mov word [esi + eax + 0xa40], 0x63
jmp 0x47b047
push 1
push dword [esi + 0x1088]
call fcn.0048cfb8
jmp 0x4794c5
cmp eax, 3
mov edi, 0xffffffff
jl case.0x478907.92
cmp dword [esi + 0x114c], 0
mov edi, 0xffffffff
jne case.0x478907.92
push dword [esi + 0x1b4]
push dword [esi + 0x1b0]
push dword [esi + 0x1088]
call fcn.0048cfef
jmp 0x478ad1
push 1
push dword [esi + 0x1088]
jmp 0x47ac6d
push 0
push dword [esi + 0x1088]
call fcn.0048d032
jmp 0x4794c5
push dword [esi + 0x1088]
call fcn.0048d068
jmp 0x477b3d
cmp eax, 3
mov edi, 0xffffffff
jl case.0x478907.92
cmp dword [esi + 0x114c], 0
mov edi, 0xffffffff
jne case.0x478907.92
xor eax, eax
mov ecx, dword [esp + 0x28]
cmp dword [esi + 0x1b0], eax
cmove ecx, dword [esp + 0x40]
cmp dword [esi + 0x1b4], eax
mov eax, dword [esp + 0x44]
cmove eax, dword [esp + 0x24]
push dword [ecx]
push dword [eax]
push dword [esi + 0x1088]
call fcn.00489f9b
jmp 0x478ad1
cmp eax, 2
mov edi, 0xffffffff
jl case.0x478907.92
xor eax, eax
cmp dword [esi + 0x1b0], 0
setne al
push eax
push dword [esi + 0x1088]
call fcn.0048d079
jmp 0x4794c5
cmp dword [esi + 0x1084], 0
mov edi, 0xffffffff
je case.0x478907.92
push dword [esi + 0x1088]
call fcn.0048d0b0
add esp, 4
test eax, eax
mov eax, str.e_2t
mov ecx, str.e_1t
cmovne ecx, eax
xor eax, eax
push eax
push 4
push ecx
push dword [esi + 0x1084]
jmp 0x479421
cmp dword [esi + 0x1084], 0
mov edi, 0xffffffff
je case.0x478907.92
lea edi, [esp + 0x4c]
lea ebx, [esp + 0x50]
push edi
push ebx
push dword [esi + 0x1088]
call fcn.0048d0bd
add esp, 0xc
lea ebp, [esp + 0xa0]
push dword [edi]
push dword [ebx]
push str.e_3__u__ut
push ebp
call fcn.00432778
add esp, 0x10
push 0
push eax
push ebp
push dword [esi + 0x1084]
jmp 0x479421
cmp dword [esi + 0x1084], 0
mov edi, 0xffffffff
je case.0x478907.92
lea edi, [esp + 0x4c]
lea ebx, [esp + 0x50]
push edi
push ebx
push dword [esi + 0x1088]
call fcn.0048d0fc
add esp, 0xc
lea ebp, [esp + 0xa0]
push dword [ebx]
push dword [edi]
push str.e_4__d__dt
push ebp
call fcn.00432778
add esp, 0x10
push 0
push eax
push ebp
push dword [esi + 0x1084]
jmp 0x479421
cmp dword [esi + 0x1084], 0
mov edi, 0xffffffff
je case.0x478907.92
lea edi, [esp + 0xa0]
push dword [esi + 0x12c]
push dword [esi + 0x128]
push str.e_8__d__dt
push edi
call fcn.00432778
add esp, 0x10
push 0
push eax
push edi
push dword [esi + 0x1084]
jmp 0x479421
mov ebp, dword [esi + 0x1084]
mov edi, 0xffffffff
test ebp, ebp
je case.0x478907.92
mov eax, dword [esi + 0x1160]
mov edi, 0xffffffff
test eax, eax
je case.0x478907.92
cmp eax, 2
jne 0x47aebe
push 1
mov esi, dword [esp + 0x10]
push dword [esi + 0x1088]
call fcn.0048d141
add esp, 8
mov ebp, dword [esi + 0x1084]
mov ebx, eax
jmp 0x47aec4
mov ebp, dword [esi + 0x1084]
mov edi, 0xffffffff
test ebp, ebp
je case.0x478907.92
mov eax, dword [esi + 0x1160]
mov edi, 0xffffffff
test eax, eax
je case.0x478907.92
cmp eax, 2
jne 0x47af0c
push 0
mov esi, dword [esp + 0x10]
push dword [esi + 0x1088]
call fcn.0048d141
add esp, 8
mov ebp, dword [esi + 0x1084]
mov ebx, eax
jmp 0x47af12
mov ebx, dword [0x42b1c0]
push ebx
call fcn.004a7f30
add esp, 4
mov edi, eax
xor eax, eax
push eax
push 3
push 0x41836d
push ebp
call fcn.0043c15b
add esp, 0x10
xor ebp, ebp
push ebp
push edi
push ebx
mov esi, dword [esp + 0x18]
push dword [esi + 0x1084]
call fcn.0043c15b
add esp, 0x10
push ebp
push 2
push 0x418371
push dword [esi + 0x1084]
jmp 0x479421
mov ebx, dword [0x42b1c0]
push ebx
call fcn.004a7f30
add esp, 4
mov edi, eax
xor eax, eax
push eax
push 3
push 0x418374
push ebp
call fcn.0043c15b
add esp, 0x10
xor ebp, ebp
push ebp
push edi
push ebx
mov esi, dword [esp + 0x18]
push dword [esi + 0x1084]
call fcn.0043c15b
add esp, 0x10
push ebp
push 2
push 0x418371
push dword [esi + 0x1084]
jmp 0x479421
add dword [esi + 0x30], eax
mov eax, dword [edi]
test eax, eax
je 0x47af93
mov ecx, ebx
sub ecx, dword [esi + 0x10f4]
cmp dword [eax + 4], ecx
jae 0x47af93
mov ecx, dword [eax]
mov dword [edi], ecx
push eax
call fcn.0043f9d4
add esp, 4
cmp dword [edi], 0
mov eax, 0xffffffff
jne 0x47af5a
xor eax, eax
mov dword [esi + 0x2c], 0
dec eax
jmp 0x47af5a
cmp dword [esi + 0x10e8], 0
je 0x47afc3
cmp dword [esi + 0x34], 0
je 0x47afb8
mov eax, ebx
sub eax, dword [esi + 0x38]
cmp eax, dword [esi + 0x10f0]
jb 0x47b00c
mov dword [esi + 0x34], 0
jmp 0x47afc3
mov eax, dword [esi + 0x30]
cmp eax, dword [esi + 0x10ec]
jge 0x47b005
mov dword [esi + 0x38], ebx
push dword [esi + 0x10e4]
push dword [esi + 0x1088]
call fcn.0048cd29
add esp, 8
cmp dword [esi + 0x10e4], 2
jne 0x47b00f
mov dword [esi + 0x138], 1
push esi
push 0x47bf8d
push 0x64
call fcn.0047d9f4
add esp, 0xc
mov dword [esi + 0x13c], eax
jmp 0x47b00f
mov dword [esi + 0x34], 1
mov dword [esi + 0x38], ebx
mov dword [esi + 0x154], 1
mov edi, 0xffffffff
cmp dword [esi + 0x109c], 0
jne case.0x478907.92
mov dword [esi + 0x109c], 1
push esi
push 0x47bf8d
push 0x14
call fcn.0047d9f4
add esp, 0xc
mov dword [esi + 0x10a0], eax
xor edi, edi
dec edi
cmp dword [esi + 0xe48], 0
je 0x47b0c3
mov eax, dword [esi + 0x6c]
mov ebx, 0
mov dword [esp + 0x60], eax
mov ecx, dword [esi + 0x70]
cmp ecx, dword [esi + 0x12c]
mov edx, ecx
cmove edx, ebx
lea ebx, [esp + 0x60]
mov dword [esp + 0x54], edx
lea edx, [esp + 0x54]
cmove edx, ebx
inc dword [edx]
cmp dword [esi + 0xe5c], eax
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x54]
jle 0x47b0b9
mov ecx, dword [esp + 4]
cmp dword [ecx], edx
jl 0x47b0a0
jne 0x47b0c3
cmp dword [esi + 0xe58], eax
jge 0x47b0c3
xor ecx, ecx
mov dword [esi + 0xe48], ecx
mov eax, dword [esp + 4]
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ecx
jmp 0x47b0c3
jne 0x47b0c3
cmp dword [esi + 0xe60], ecx
jg 0x47b08e
mov eax, dword [esp + 0x58]
cmp edi, 0xffffffff
jne 0x477647
test eax, eax
jg 0x477647
push dword [esp + 0x20]
call fcn.0043ff78
add esp, 4
test eax, eax
jg 0x477647
mov ecx, esi
call fcn.0047c887
cmp dword [esi + 0x1124], 0
je 0x47b10f
mov eax, dword [esi + 0x108c]
test eax, eax
je 0x47b10f
push eax
call fcn.0043cc3c
add esp, 4
mov ecx, dword [esp + 0x1f0]
call fcn.00497c4a
add esp, 0x1f4
pop esi
pop edi
pop ebx
pop ebp
ret