Function at 0x4527be
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, 0x1dc
mov esi, ecx
mov eax, dword [0x4c1074]
xor eax, esp
mov dword [esp + 0x1d8], eax
lea ebp, [ecx + 0x80]
lea eax, [ecx + 0xec]
mov dword [esp + 0x30], eax
lea eax, [ecx + 0xe1c]
mov dword [esp + 4], eax
lea eax, [ecx + 0xd8]
mov dword [esp + 0x40], eax
lea eax, [ecx + 0xe2c]
mov dword [esp + 0x1c], eax
lea eax, [ecx + 0x28]
mov dword [esp + 0x3c], eax
lea eax, [ecx + 0x6c]
mov dword [esp + 0x14], eax
lea eax, [ecx + 0x40]
mov dword [esp + 0xc], eax
lea eax, [ecx + 0x58]
mov dword [esp + 0x18], eax
lea eax, [ecx + 0xa16]
mov dword [esp + 0x2c], eax
xor edi, edi
dec edi
xor ebx, ebx
mov dword [esp + 0x34], 0
mov dword [esp + 0x24], ebp
mov dword [esp], ecx
test ebx, ebx
jne 0x4528b1
cmp edi, 0xffffffff
jne 0x4528b1
push ebp
call fcn.0045b405
add esp, 4
test eax, eax
je 0x455bac
push ebp
call fcn.0045b54c
add esp, 4
mov ebx, edx
mov ecx, 0x100
cmp edx, ecx
cmovae ebx, ecx
push ebx
push eax
lea edi, [esp + 0xe0]
push edi
call fcn.00478390
add esp, 0xc
push ebx
push ebp
call fcn.0045b4bb
add esp, 8
test ebx, ebx
jne 0x4528c4
push 0xe2c
push str..._terminal.c
push str.nchars___0
call fcn.0048233d
add esp, 0xc
xor ebx, ebx
lea edi, [esp + 0xd8]
jmp 0x4528c4
cmp edi, 0xffffffff
je 0x4528bc
mov dword [esp + 0x44], edi
jmp 0x4528f3
test ebx, ebx
mov edi, dword [esp + 0x34]
je 0x45285a
movzx eax, byte [edi]
inc edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x44], eax
dec ebx
cmp dword [esi + 0x10e4], 2
jne 0x4528f3
mov ecx, dword [esi + 0x1060]
test ecx, ecx
je 0x4528f3
movzx eax, al
push 2
push eax
push ecx
call fcn.0040fde1
add esp, 0xc
cmp byte [esi + 0xe4], 0
je 0x452943
push 1
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x38]
call fcn.0045b420
add esp, 0xc
cmp byte [esi + 0xe5], 0
je 0x452943
mov eax, dword [esp + 0x44]
cmp eax, 0x5a
jle 0x45299b
cmp eax, 0x5b
je 0x4529c0
cmp eax, 0x69
je 0x4529db
cmp eax, 0x9b
je 0x4529c9
jmp 0x4529fd
mov eax, dword [esp + 4]
cmp dword [eax], 0
mov edx, dword [esp + 0x44]
je 0x452958
xor ecx, ecx
dec ecx
jmp 0x452a2a
movzx eax, dl
push eax
push dword [esp + 0x44]
push esi
call fcn.004504c7
add esp, 0xc
xor edi, edi
dec edi
cmp eax, 0x8000003f
je 0x452840
mov edx, 0xd961
cmp eax, 0x8000002a
je 0x452a23
cmp eax, 0x80000021
jne 0x452a21
mov ecx, dword [esp + 0x44]
jmp 0x452a26
cmp eax, 0x1b
je 0x452a0f
cmp eax, 0x34
jne 0x4529fd
cmp dword [esi + 0xe8], 2
jne 0x4529fd
mov dword [esi + 0xe8], 3
xor edi, edi
dec edi
jmp 0x452840
cmp dword [esi + 0xe8], 1
jne 0x4529fd
mov dword [esi + 0xe8], 2
xor edi, edi
dec edi
jmp 0x452840
cmp dword [esi + 0xe8], 3
jne 0x4529fd
mov dword [esi + 0xe8], 4
mov ecx, esi
call fcn.0044f37a
xor edi, edi
dec edi
jmp 0x452840
mov dword [esi + 0xe8], 0
xor edi, edi
dec edi
jmp 0x452840
mov dword [esi + 0xe8], 1
xor edi, edi
dec edi
jmp 0x452840
mov edx, eax
xor ecx, ecx
dec ecx
mov dword [esp + 0x44], edx
mov eax, edx
and eax, 0xffffffe0
cmp eax, 0x80
mov dword [esp + 0x28], ecx
jne 0x452a76
mov eax, dword [esp + 4]
cmp dword [eax], 4
jg 0x452b34
cmp byte [esi + 0x13e], 0
jne 0x452b34
test byte [esi], 0x10
je 0x452b34
cmp edx, 0x9a
jne 0x452f4f
mov dword [esp + 0x44], 0
jmp case.0x453369.92
cmp edx, 0x7f
jne 0x452abb
mov eax, dword [esp + 4]
mov eax, dword [eax]
cmp eax, 4
jg 0x452b3a
test byte [esi + 1], 0x40
je 0x452b3a
mov edx, dword [esi + 0x98]
test edx, edx
je 0x453052
cmp byte [esi + 0xae], 0
jne 0x453054
dec edx
mov dword [esi + 0x98], edx
jmp 0x453054
cmp edx, 0x20
jae 0x452b34
mov eax, dword [esp + 4]
mov eax, dword [eax]
cmp eax, 4
jg 0x452b3a
add edx, 0xfffffffb
cmp edx, 0x16
ja case.0x453369.92
jmp dword [edx*4 + 0x49fbb0]
mov eax, dword [esp]
test byte [eax], 1
je 0x453ad2
cmp dword [eax + 0x1058], 0
je case.0x453369.92
mov esi, dword [esp]
mov ecx, esi
xor edx, edx
push dword [esi + 0x10ac]
push dword [esi + 0x10a8]
call fcn.0045621f
add esp, 8
mov edi, eax
push 0
push dword [eax + 8]
push dword [eax]
push dword [esi + 0x1058]
call fcn.0040f1b9
add esp, 0x10
push edi
call fcn.0045b117
jmp 0x4530bc
mov eax, dword [esp + 4]
mov eax, dword [eax]
cmp eax, 0xd
ja case.0x453369.92
jmp dword [eax*4 + 0x49fc0c]
mov esi, dword [esp]
mov ecx, esi
call fcn.004586a9
mov eax, dword [esp + 0x44]
mov dword [esi + 0x1068], eax
jmp case.0x453369.92
mov ebp, dword [esp + 4]
mov dword [ebp], 0
lea eax, [edx - 0x30]
cmp eax, 9
ja 0x452ebe
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x208]
cmp ecx, 0x20
jg 0x452ee9
mov esi, dword [esp]
mov edi, dword [esi + ecx*4 + 0x184]
test edi, edi
mov dword [esp + 8], ebx
jne 0x452bb6
mov dword [esi + ecx*4 + 0x184], 0
mov ecx, dword [esi + 0x208]
mov edi, dword [esi + ecx*4 + 0x184]
dec ecx
xor ebx, ebx
dec ebx
cmp edi, 0x19999999
ja 0x452bdc
add edi, edi
lea edi, [edi + edi*4]
mov ebx, 0xffffffcf
sub ebx, edx
add eax, edi
cmp edi, ebx
mov edx, 0xffffffff
cmova eax, edx
mov ebx, eax
mov eax, dword [esp]
mov dword [eax + ecx*4 + 0x188], ebx
mov ebx, dword [esp + 8]
jmp 0x452ee9
mov esi, dword [esp]
mov byte [esi + 0xa15], 0
lea eax, [edx - 0x30]
cmp eax, 0x22
ja case.default.0x452c05
jmp dword [eax*4 + 0x49fd34]
mov eax, dword [esi + 0x208]
mov ecx, dword [esi + eax*4 + 0x184]
cmp ecx, 0x19999999
ja 0x452c35
add ecx, ecx
lea ecx, [ecx + ecx*4]
mov edi, 0xffffffcf
sub edi, edx
cmp ecx, edi
jbe 0x4532d9
mov dword [esi + eax*4 + 0x184], 0xffffffff
jmp case.0x453369.92
lea eax, [edx - 0x30]
cmp eax, 9
ja 0x452ef5
mov esi, dword [esp]
mov ecx, dword [esi + 0x188]
cmp ecx, 0x19999999
ja 0x452c76
add ecx, ecx
lea ecx, [ecx + ecx*4]
mov edi, 0xffffffcf
sub edi, edx
cmp ecx, edi
jbe 0x4533a9
mov dword [esi + 0x188], 0xffffffff
jmp case.0x453369.92
mov esi, ebx
mov ebp, dword [esp]
mov eax, dword [ebp + 0x210]
test eax, eax
mov ecx, 0xf
mov edi, 0x15
cmove ecx, edi
lea ebx, [edx - 0x30]
cmp ebx, 0xa
jb 0x453186
cmp edx, 0x41
jl 0x45316a
lea edi, [ecx + 0x37]
cmp edx, edi
jg 0x45316a
add edx, 0xffffffc9
jmp 0x453181
cmp edx, 0xc
jle 0x452f11
cmp edx, 0x9c
mov esi, dword [esp]
je 0x4530cf
cmp edx, 0x1b
je 0x4532ca
cmp edx, 0xd
je 0x453ad2
jmp 0x452f26
cmp edx, 0x5c
jne case.0x452b43.1
mov esi, dword [esp]
mov ecx, esi
call fcn.00458bd3
jmp 0x453226
mov eax, dword [esp]
mov dword [eax + 0xe1c], 0
mov byte [eax + 0x142], 1
cmp byte [eax + 0x1071], 0
jne 0x452d44
mov byte [eax + 0x1071], 1
push eax
push 0x4571bb
call fcn.0040164e
add esp, 8
mov edx, dword [esp + 0x44]
add edx, 0xffffffc4
cmp edx, 0x3b
ja case.0x453369.92
jmp dword [edx*4 + 0x49fc44]
mov ecx, dword [esp]
mov byte [ecx + 0x13e], 0
mov al, byte [ecx + 0x10cb]
mov byte [ecx + 0xc9], al
call fcn.0044f451
jmp case.0x453369.92
mov esi, dword [esp]
mov dword [esi + 0xe1c], 0xb
add edx, 0xffffffe0
mov eax, dword [esi + 0x98]
test eax, eax
mov ebp, 0
cmovs eax, ebp
mov ecx, dword [esi + 0x12c]
lea edi, [ecx - 1]
cmp eax, ecx
cmovl edi, eax
mov eax, dword [esi + 0x128]
test edx, edx
cmovs edx, ebp
lea ecx, [eax - 1]
cmp edx, eax
cmovl ecx, edx
mov dword [esi + 0x98], edi
mov dword [esi + 0x94], ecx
jmp 0x452e0a
xor edi, edi
mov esi, dword [esp]
mov dword [esi + 0xe1c], edi
add edx, 0xffffffe0
cmovs edx, edi
mov eax, dword [esi + 0x12c]
lea ecx, [eax - 1]
cmp edx, eax
cmovl ecx, edx
mov eax, dword [esi + 0x94]
mov edx, dword [esi + 0x128]
test eax, eax
cmovs eax, edi
lea edi, [edx - 1]
cmp eax, edx
cmovl edi, eax
mov dword [esi + 0x98], ecx
mov dword [esi + 0x94], edi
mov byte [esi + 0xae], 0
jmp case.0x453369.92
mov esi, dword [esp]
mov dword [esi + 0xe1c], 0
mov eax, dword [esi + 0x40]
mov ecx, 0xfffbfe00
and eax, ecx
and edx, 0xf
or edx, eax
mov dword [esi + 0x40], edx
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x10], eax
movups xmm0, xmmword [esi]
movups xmmword [ecx], xmm0
mov eax, dword [esp]
cmp byte [eax + 0xc6], 0
je case.0x453369.92
and edx, 0x3fe0f
jmp 0x452ead
mov esi, dword [esp]
mov dword [esi + 0xe1c], 0
mov eax, dword [esi + 0x40]
mov ecx, 0xffdc01ff
and eax, ecx
and edx, 0xf
shl edx, 9
or edx, eax
mov dword [esi + 0x40], edx
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x10], eax
movups xmm0, xmmword [esi]
movups xmmword [ecx], xmm0
mov eax, dword [esp]
cmp byte [eax + 0xc6], 0
je case.0x453369.92
and edx, 0x1fff
mov ecx, dword [esp]
mov dword [ecx + 0x70], edx
mov eax, dword [ecx + 0x4c]
mov dword [ecx + 0x78], eax
jmp case.0x453369.92
cmp edx, 0x3b
mov esi, dword [esp]
jne 0x453235
mov eax, dword [esi + 0x208]
cmp eax, 0x1f
jg 0x452ee9
lea ecx, [eax + 1]
mov dword [esi + 0x208], ecx
mov dword [esi + eax*4 + 0x188], 0
mov dword [ebp], 2
jmp case.0x453369.92
mov eax, dword [esp]
mov dword [eax + 0xe1c], 7
mov dword [eax + 0x210], 0
jmp case.0x453369.92
cmp edx, 7
mov esi, dword [esp]
je 0x4530cf
cmp edx, 0xa
je 0x453ad2
mov eax, dword [esi + 0x210]
cmp eax, 0x7ff
jg case.0x453369.92
lea ecx, [eax + 1]
mov esi, dword [esp]
mov dword [esi + 0x210], ecx
mov byte [esi + eax + 0x214], dl
jmp case.0x453369.92
mov dword [esi + 0xe1c], 1
mov dword [esi + 0x20c], 0
and edx, 0x1f
or edx, 0x40
mov dword [esp + 0x44], edx
mov eax, edx
and eax, 0xfffffff0
cmp eax, 0x20
jne 0x452f96
mov eax, dword [esp]
cmp dword [eax + 0x20c], 0
je 0x4530c4
mov dword [eax + 0x20c], 0xffffffff
jmp case.0x453369.92
mov esi, dword [esp]
mov dword [esi + 0xe1c], 0
mov eax, dword [esi + 0x20c]
shl eax, 8
add eax, edx
cmp eax, 0x2337
jg 0x452fee
cmp eax, 0x59
jg 0x4530db
lea ecx, [eax - 0x37]
cmp ecx, 7
jbe switch.0x004532ea
add eax, 0xffffffbc
cmp eax, 9
ja case.0x453369.92
jmp dword [eax*4 + 0x4a00f0]
mov esi, dword [esp]
test byte [esi], 2
je 0x453d3f
jmp 0x453cf1
cmp eax, 0x2841
jg 0x45326f
cmp eax, 0x2546
mov ecx, dword [esp + 4]
jg 0x45344a
cmp eax, 0x2338
je 0x453ae1
cmp eax, 0x2538
je 0x453770
cmp eax, 0x2540
jne case.0x453369.92
mov eax, dword [esp]
test byte [eax + 1], 0x40
je 0x453d3f
cmp byte [eax + 0x10ef], 0
jne case.0x453369.92
mov eax, dword [esp]
mov byte [eax + 0xd5], 0
jmp case.0x453369.92
xor edx, edx
mov byte [esi + 0xae], 0
cmp byte [esi + 0x10ed], 0
jne case.0x453369.92
mov esi, dword [esp]
mov ecx, esi
push dword [esi + 0x94]
call fcn.00456d7c
add esp, 4
mov edx, dword [esi + 0x98]
inc edx
mov ecx, esi
push dword [esi + 0x94]
call fcn.00456d7c
add esp, 4
mov edx, dword [esi + 0x94]
mov edi, dword [esi + 0x98]
mov ecx, esi
push 1
push 0xe8b
call fcn.0044f60a
add esp, 8
mov ecx, eax
mov edx, edi
push dword [esp + 0x14]
call fcn.00456e3d
add esp, 4
jmp case.0x453369.92
mov dword [eax + 0x20c], edx
jmp case.0x453369.92
mov ecx, esi
call fcn.00458bd3
jmp 0x453226
lea ecx, [eax - 0x5a]
cmp ecx, 9
jbe switch.0x00453369
lea ecx, [eax - 0x2333]
cmp ecx, 4
jae case.0x453369.92
mov esi, dword [esp]
test byte [esi], 2
je 0x453d3f
xor edx, edx
inc edx
mov ebp, edx
cmp ecx, 2
ja 0x453114
movzx ebp, word [eax + eax + 0x49b4c6]
mov edx, dword [esi + 0x94]
mov ecx, esi
push 1
push 0xfe1
call fcn.0044f60a
add esp, 8
mov edi, eax
mov eax, dword [esi + 0x12c]
cmp eax, dword [edi + 4]
je 0x453145
mov ecx, esi
mov edx, edi
push eax
call fcn.00456f50
add esp, 4
mov al, byte [edi + 0x18]
cmp al, byte [esi + 0x10a4]
je 0x453162
mov ecx, esi
mov edx, edi
call fcn.00456f0c
mov al, byte [esi + 0x10a4]
mov byte [edi + 0x18], al
mov word [edi], bp
jmp case.0x453369.92
cmp edx, 0x61
jl 0x4533b6
add ecx, 0x57
cmp edx, ecx
jg 0x4533b6
add edx, 0xffffffa9
mov ebx, edx
mov ebp, dword [esp]
lea ecx, [eax + 1]
mov dword [ebp + 0x210], ecx
mov byte [ebp + eax + 0x214], bl
cmp dword [ebp + 0x210], 7
mov ebx, esi
jl case.0x453369.92
mov esi, dword [esp]
movsx edi, byte [esi + 0x214]
cmp edi, 0x16
jb 0x4531cb
push 0x1435
push str..._terminal.c
push str.oscp_index___OSCP_NCOLOURS
call fcn.0048233d
add esp, 0xc
mov eax, dword [edi*4 + 0x49f8a0]
mov cl, byte [esi + 0x215]
shl cl, 4
add cl, byte [esi + 0x216]
lea edx, [eax + eax*2]
mov byte [esi + edx + 0x1961], cl
mov cl, byte [esi + 0x217]
shl cl, 4
add cl, byte [esi + 0x218]
mov byte [esi + edx + 0x1962], cl
mov cl, byte [esi + 0x219]
shl cl, 4
add cl, byte [esi + 0x21a]
mov byte [esi + edx + 0x1963], cl
mov byte [esi + eax + 0x1c73], 1
mov ecx, esi
call fcn.0045732b
mov dword [esi + 0xe1c], 0
jmp case.0x453369.92
mov eax, dword [esi + 0x20c]
cmp edx, 0x3f
ja 0x4533c7
mov ecx, 1
cmove edx, ecx
cmp eax, 1
mov eax, 0
sbb eax, eax
not eax
or eax, edx
mov dword [esi + 0x20c], eax
mov dword [esi + 0xe1c], 2
jmp case.0x453369.92
cmp eax, 0x2940
mov ecx, dword [esp + 4]
jg 0x453496
cmp eax, 0x2842
je 0x453c32
cmp eax, 0x2855
je 0x453c56
cmp eax, 0x2930
jne case.0x453369.92
mov eax, dword [esp]
test byte [eax], 2
je 0x453d3f
cmp byte [eax + 0x10ef], 0
jne case.0x453369.92
mov eax, dword [esp]
mov dword [eax + 0x15c], 0xd900
jmp case.0x453369.92
mov eax, dword [esp + 4]
mov dword [eax], 8
jmp case.0x453369.92
add ecx, edx
add ecx, 0xffffffd0
mov dword [esi + eax*4 + 0x184], ecx
jmp case.0x453369.92
jmp dword [ecx*4 + 0x4a00d0]
mov edx, dword [esp]
test byte [edx], 2
je 0x453d3f
mov eax, dword [edx + 0x94]
mov ecx, dword [edx + 0x98]
mov dword [edx + 0xa0], ecx
mov dword [edx + 0x9c], eax
mov eax, dword [edx + 0x40]
mov ecx, dword [edx + 0x48]
mov dword [edx + 0x44], eax
mov eax, dword [edx + 0x4c]
mov dword [edx + 0x54], eax
mov dword [edx + 0x50], ecx
mov eax, dword [edx + 0xb0]
mov dword [edx + 0xb4], eax
mov cl, byte [edx + 0xd5]
mov byte [edx + 0xbc], cl
mov cl, byte [edx + 0xae]
mov byte [edx + 0xbd], cl
mov eax, dword [edx + eax*4 + 0x158]
mov dword [edx + 0xb8], eax
mov eax, dword [edx + 0xcc]
mov dword [edx + 0xd0], eax
jmp case.0x453369.92
jmp dword [ecx*4 + 0x4a0118]
mov eax, dword [esp]
test byte [eax], 2
je 0x453d3f
mov edi, dword [eax + 0x1058]
test edi, edi
je case.0x453369.92
mov ebp, dword [esp + 0x2c]
push ebp
call fcn.00485930
add esp, 4
push 0
push eax
push ebp
push edi
call fcn.0040f1b9
add esp, 0x10
jmp case.0x453369.92
add eax, ecx
mov dword [esi + 0x188], eax
jmp case.0x453369.92
mov eax, dword [esp + 4]
mov dword [eax], 0
mov ebx, esi
jmp case.0x453369.92
mov ecx, eax
shl ecx, 8
add ecx, edx
cmp ecx, 0x168
jg 0x453878
lea edx, [ecx - 0x40]
cmp edx, 0x38
ja case.default.0x4533e6
jmp dword [edx*4 + 0x49fdc0]
mov esi, dword [esp]
test byte [esi + 1], 0x20
je 0x453d3f
mov eax, dword [esi + 0x188]
mov ecx, dword [esi + 0x12c]
cmp eax, ecx
cmova eax, ecx
mov dword [esi + 0x188], eax
xor edx, edx
sub eax, 1
cmovb eax, edx
test eax, eax
cmovs eax, edx
lea edi, [ecx - 1]
cmp eax, ecx
cmovl edi, eax
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0x128]
test eax, eax
cmovns edx, eax
lea eax, [ecx - 1]
cmp edx, ecx
cmovl eax, edx
mov dword [esi + 0x98], edi
jmp 0x4540f6
cmp eax, 0x2547
je 0x453770
cmp eax, 0x2830
je 0x453c7f
cmp eax, 0x2841
jne case.0x453369.92
mov eax, dword [esp]
test byte [eax], 2
je 0x453d3f
cmp byte [eax + 0x10ef], 0
jne case.0x453369.92
mov eax, dword [esp]
mov dword [eax + 0x158], 0xdb00
jmp case.0x453369.92
cmp eax, 0x2941
je 0x453ca7
cmp eax, 0x2942
je 0x453cbb
cmp eax, 0x2955
jne case.0x453369.92
mov eax, dword [esp]
test byte [eax + 1], 0x40
je 0x453d3f
cmp byte [eax + 0x10ef], 0
jne case.0x453369.92
mov eax, dword [esp]
mov dword [eax + 0x15c], 0xda00
jmp case.0x453369.92
cmp edx, 0x57
jne case.0x452c05.58
mov dword [esi + 0xe1c], 4
mov byte [esi + 0xa15], 1
jmp case.0x453369.92
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
mov esi, dword [esp]
cmp byte [esi + 0x34], 0
mov ebp, dword [esp + 0x3c]
jne 0x4541e4
xor eax, eax
push eax
push 8
push 1
call fcn.004116c4
add esp, 0xc
mov dword [eax + 4], edi
xor ecx, ecx
mov dword [eax], ecx
cmp dword [ebp], ecx
je 0x4541da
mov ecx, dword [esi + 0x2c]
jmp 0x4541dc
mov edx, dword [esp]
mov eax, dword [edx + 0x98]
test eax, eax
je 0x453a0f
cmp byte [edx + 0xae], 0
je 0x454092
mov byte [edx + 0xae], 0
jmp 0x454099
mov dword [esp + 8], ebx
mov esi, dword [esp]
mov edx, dword [esi + 0x94]
mov eax, dword [esi + 0x98]
mov dword [esp + 0x20], eax
mov ecx, esi
mov dword [esp + 0x10], edx
push 1
push 0xf27
call fcn.0044f60a
add esp, 8
mov ebx, dword [esi + 0x98]
mov ebp, dword [esi + 0x12c]
lea edx, [ebp - 1]
inc ebx
mov ecx, ebx
mov dword [esi + 0x98], ebx
cmp ebx, edx
jge 0x4535c3
mov edi, dword [esi + 0xe18]
lea ebx, [ecx + 1]
cmp byte [edi + ecx], 0
je 0x4535a8
test byte [eax], 3
je 0x453a4b
mov edx, ebp
shr edx, 0x1f
add edx, ebp
sar edx, 1
cmp ecx, edx
mov ebx, dword [esp + 8]
mov esi, dword [esp]
jl 0x453a5e
dec edx
jmp 0x453a56
mov eax, dword [esp]
test byte [eax + 1], 0x10
jne 0x453815
mov eax, dword [esp]
test byte [eax], 2
je 0x453ad2
mov esi, dword [esp]
mov eax, dword [esi + 0x94]
cmp eax, dword [esi + 0xa8]
jne 0x4536fb
mov edx, dword [esi + 0xa4]
mov ecx, esi
xor edi, edi
inc edi
push edi
push edi
push eax
call fcn.00456aa9
add esp, 0xc
jmp 0x45370d
mov esi, dword [esp]
mov dword [esi + 0x98], 0
mov byte [esi + 0xae], 0
mov byte [esi + 0x142], 1
cmp byte [esi + 0x1071], 0
jne 0x45366c
mov byte [esi + 0x1071], 1
push esi
push 0x4571bb
call fcn.0040164e
add esp, 8
cmp byte [esi + 0x10d8], 0
je 0x45374c
mov eax, dword [esi + 0x94]
cmp eax, dword [esi + 0xa8]
jne 0x454077
mov edx, dword [esi + 0xa4]
mov ecx, esi
xor edi, edi
inc edi
push edi
push edi
push eax
call fcn.00456aa9
add esp, 0xc
jmp 0x45374c
mov eax, dword [esp]
test byte [eax], 2
je 0x453ad2
mov dword [eax + 0xb0], 1
jmp case.0x453369.92
mov eax, dword [esp]
test byte [eax], 2
je 0x453ad2
mov dword [eax + 0xb0], 0
jmp case.0x453369.92
mov eax, dword [esp]
cmp byte [eax + 0x13e], 0
je 0x453ac9
mov eax, dword [esp + 4]
mov dword [eax], 9
jmp case.0x453369.92
mov ecx, dword [esi + 0x128]
dec ecx
cmp eax, ecx
jge 0x45370d
inc eax
mov dword [esi + 0x94], eax
cmp byte [esi + 0x10e0], 0
je 0x453720
mov dword [esi + 0x98], 0
mov byte [esi + 0xae], 0
mov byte [esi + 0x142], 1
cmp byte [esi + 0x1071], 0
jne 0x45374c
mov byte [esi + 0x1071], 1
push esi
push 0x4571bb
call fcn.0040164e
add esp, 8
mov eax, dword [esi + 0x1060]
test eax, eax
je case.0x453369.92
movzx ecx, byte [esp + 0x44]
push 1
push ecx
push eax
call fcn.0040fde1
add esp, 0xc
jmp case.0x453369.92
test byte [esi + 1], 0x40
je 0x453cb0
cmp byte [esi + 0x10ef], 0
jne case.0x453369.92
mov eax, dword [esp]
mov byte [eax + 0xd5], 1
jmp case.0x453369.92
cmp dword [esi + 0x208], 1
jne case.0x452c05.58
cmp dword [esi + 0x188], 4
jne case.0x452c05.58
mov dword [esi + 0x208], 2
mov dword [esi + 0x18c], 0
jmp case.0x453369.92
cmp dword [esi + 0x188], 2
jne case.0x452c05.58
mov dword [esi + 0x188], 1
jmp case.0x453369.92
mov dword [esi + 0xe1c], 7
jmp 0x4537ef
mov dword [esi + 0xe1c], 6
mov dword [esi + 0x210], 0
jmp case.0x453369.92
mov ecx, esi
xor edx, edx
call fcn.0044f9e7
push esi
call fcn.004507c9
add esp, 4
jmp 0x453226
mov esi, dword [esp]
mov eax, dword [esi + 0x128]
mov ecx, dword [esi + 0x12c]
lea edx, [ecx - 1]
test ecx, ecx
mov edi, 0
cmovg edx, edi
lea ecx, [eax - 1]
test eax, eax
cmovg ecx, edi
mov dword [esi + 0x98], edx
mov dword [esi + 0x94], ecx
mov byte [esi + 0xae], 0
mov ecx, esi
xor edx, edx
push 1
push 0
call fcn.004567be
add esp, 8
cmp byte [esi + 0x10fd], 0
je 0x45386c
mov dword [esi + 0x10], 0
mov byte [esi + 0xae], 0
jmp 0x4542ad
cmp ecx, 0x3d42
jle 0x454130
lea eax, [ecx - 0x3d43]
cmp eax, 9
ja case.default.0x453893
jmp dword [eax*4 + 0x49fea4]
mov eax, dword [esp]
test byte [eax + 1], 0x10
je 0x453ad2
cmp dword [eax + 0x208], 2
jl case.0x453369.92
mov ecx, dword [esp]
mov eax, dword [ecx + 0x188]
cmp eax, dword [ecx + 0x18c]
jbe 0x4557fa
mov byte [ecx + 0xc4], 0
jmp case.0x453369.92
mov esi, dword [esp]
test byte [esi], 2
je 0x453d3f
mov ecx, esi
xor edx, edx
call fcn.00458d9d
jmp 0x454e67
mov eax, dword [esp]
test byte [eax], 2
je 0x453d3f
mov byte [eax + 0x13d], 1
jmp case.0x453369.92
mov eax, dword [esp]
test byte [eax], 2
je 0x453d3f
mov byte [eax + 0x13d], 0
jmp case.0x453369.92
mov ecx, dword [esp]
mov dword [ecx + 0xe1c], 2
mov dword [ecx + 0x208], 1
xor eax, eax
mov dword [ecx + 0x188], eax
mov dword [ecx + 0x20c], eax
jmp case.0x453369.92
mov eax, dword [esp]
test byte [eax + 1], 0x40
je 0x453d3f
mov dword [eax + 0xe1c], 3
mov dword [eax + 0x188], 0
mov dword [eax + 0x208], 1
jmp case.0x453369.92
mov esi, dword [esp]
test byte [esi], 2
je 0x453d3f
mov ecx, esi
xor edx, edx
inc edx
call fcn.0044e485
mov eax, dword [esi + 0x1058]
test eax, eax
je 0x4539a2
push eax
call fcn.0040f14d
add esp, 4
cmp byte [esi + 0xc5], 0
je 0x4539f6
cmp byte [esi + 0x10f0], 0
jne 0x4539ef
mov byte [esi + 0x20a8], 1
mov dword [esi + 0x20ac], 0x50
mov eax, dword [esi + 0x128]
mov dword [esi + 0x20b0], eax
cmp byte [esi + 0x1071], 0
jne 0x4539ef
mov byte [esi + 0x1071], 1
push esi
push 0x4571bb
call fcn.0040164e
add esp, 8
mov byte [esi + 0xc5], 0
cmp byte [esi + 0x10fd], 0
je 0x454e67
mov dword [esi + 0x10], 0
jmp 0x454e67
mov ecx, dword [edx + 0x94]
test ecx, ecx
je 0x454099
cmp byte [edx + 0xad], 0
je 0x454099
test ecx, ecx
jle 0x453553
mov eax, dword [edx + 0x12c]
dec eax
mov dword [edx + 0x98], eax
dec ecx
mov dword [edx + 0x94], ecx
jmp 0x454099
cmp ecx, ebp
mov ebx, dword [esp + 8]
mov esi, dword [esp]
jl 0x453a5e
mov dword [esi + 0x98], edx
mov ecx, edx
xor eax, eax
mov edx, dword [esp + 0x20]
cmp dword [esi + 0xe38], edx
setg al
xor edx, edx
mov edi, dword [esp + 0x10]
cmp dword [esi + 0xe34], edi
setg dl
cmove edx, eax
cmp dl, 1
jne 0x4542ad
mov edx, dword [esi + 0x94]
xor eax, eax
cmp dword [esi + 0xe30], ecx
setl al
xor ecx, ecx
cmp dword [esi + 0xe2c], edx
setl cl
cmove ecx, eax
cmp cl, 1
jne 0x4542ad
mov dword [esi + 0xe20], 0
mov eax, dword [esp + 0x1c]
xorps xmm0, xmm0
movups xmmword [eax], xmm0
jmp 0x4542ad
test byte [eax], 1
jne 0x4540b2
mov eax, dword [esp + 4]
mov dword [eax], 0
jmp case.0x453369.92
test byte [esi], 2
je 0x453cb0
mov eax, dword [esi + 0x128]
test eax, eax
jle 0x453b91
xor edi, edi
mov dword [esp + 8], ebx
mov ecx, esi
mov edx, edi
push 1
push 0xfb8
call fcn.0044f60a
add esp, 8
mov ebp, dword [esi + 0x12c]
cmp ebp, dword [eax + 4]
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], edi
je 0x453b3d
mov ecx, esi
mov edx, dword [esp + 0x10]
push ebp
call fcn.00456f50
mov eax, dword [esp + 0x14]
add esp, 4
mov ebp, dword [esi + 0x12c]
test ebp, ebp
mov ebp, dword [esp + 0x18]
mov esi, dword [esp]
jle 0x453b75
xor ebx, ebx
xor edi, edi
mov ecx, dword [esp + 0x10]
mov edx, edi
push ebp
call fcn.00456e3d
mov eax, dword [esp + 0x14]
add esp, 4
mov ecx, dword [eax + 0x14]
mov dword [ecx + ebx], 0x45
inc edi
add ebx, 0x14
cmp edi, dword [esi + 0x12c]
jl 0x453b4c
mov word [eax], 0
mov edi, dword [esp + 0x20]
inc edi
mov eax, dword [esi + 0x128]
cmp edi, eax
mov ebx, dword [esp + 8]
jl 0x453afe
cmp byte [esi + 0x10fd], 0
je 0x453ba1
mov dword [esi + 0x10], 0
mov byte [esi + 0x142], 1
cmp byte [esi + 0x1071], 0
jne 0x453bcc
mov byte [esi + 0x1071], 1
push esi
push 0x4571bb
call fcn.0040164e
add esp, 8
mov eax, dword [esi + 0x128]
xor ecx, ecx
cmp dword [esi + 0xe38], 0
setg cl
xor edx, edx
cmp dword [esi + 0xe34], 0
setg dl
cmove edx, ecx
cmp dl, 1
jne case.0x453369.92
xor ecx, ecx
mov esi, dword [esp]
cmp dword [esi + 0xe30], 0
sets cl
xor edx, edx
cmp dword [esi + 0xe2c], eax
setl dl
cmovne ecx, edx
cmp cl, 1
jne case.0x453369.92
mov esi, dword [esp]
mov dword [esi + 0xe20], 0
mov eax, dword [esp + 0x1c]
xorps xmm0, xmm0
movups xmmword [eax], xmm0
jmp 0x454f39
test byte [esi], 2
je 0x453cb0
cmp byte [esi + 0x10ef], 0
jne case.0x453369.92
mov eax, dword [esp]
mov dword [eax + 0x158], 0xd800
jmp case.0x453369.92
test byte [esi + 1], 0x40
je 0x453d3f
cmp byte [esi + 0x10ef], 0
jne case.0x453369.92
mov eax, dword [esp]
mov dword [eax + 0x158], 0xda00
jmp case.0x453369.92
test byte [esi], 2
je 0x453d3f
cmp byte [esi + 0x10ef], 0
jne case.0x453369.92
mov eax, dword [esp]
mov dword [eax + 0x158], 0xd900
jmp case.0x453369.92
test byte [esi], 2
jne 0x4540cb
mov dword [ecx], 0
jmp case.0x453369.92
test byte [esi], 2
je 0x453d3f
cmp byte [esi + 0x10ef], 0
jne case.0x453369.92
mov eax, dword [esp]
mov dword [eax + 0x15c], 0xd800
jmp case.0x453369.92
mov esi, dword [esp]
test byte [esi], 2
je 0x453d3f
mov dword [esi + 0x98], 0
mov eax, dword [esi + 0x94]
cmp eax, dword [esi + 0xa8]
jne 0x4540ea
mov edx, dword [esi + 0xa4]
mov ecx, esi
xor edi, edi
inc edi
push edi
push edi
push eax
jmp 0x45411c
mov ecx, dword [esp]
test byte [ecx], 2
je 0x453d3f
mov eax, dword [ecx + 0xe18]
mov ecx, dword [ecx + 0x98]
mov byte [eax + ecx], 1
jmp case.0x453369.92
mov esi, dword [esp]
test byte [esi], 2
jne 0x4540fe
mov eax, dword [esp + 4]
mov dword [eax], 0
jmp case.0x453369.92
mov eax, dword [esp]
mov byte [eax + 0x13d], 1
jmp case.0x453369.92
mov eax, dword [esp]
mov byte [eax + 0x13d], 0
jmp case.0x453369.92
mov ecx, dword [esp]
mov eax, dword [ecx + 0x94]
mov edx, dword [ecx + 0x98]
dec eax
jmp 0x453d8e
mov ecx, dword [esp]
mov eax, dword [ecx + 0x94]
mov edx, dword [ecx + 0x98]
inc eax
push 1
push eax
jmp 0x453db1
mov ecx, dword [esp]
mov edx, dword [ecx + 0x98]
inc edx
jmp 0x453da9
mov ecx, dword [esp]
mov edx, dword [ecx + 0x98]
dec edx
push 1
push dword [ecx + 0x94]
call fcn.00458616
jmp 0x454e8c
mov esi, dword [esp]
mov eax, dword [esi + 0x128]
mov ecx, dword [esi + 0x12c]
lea edx, [ecx - 1]
xor edi, edi
test ecx, ecx
cmovg edx, edi
lea ecx, [eax - 1]
test eax, eax
cmovg ecx, edi
mov dword [esi + 0x98], edx
mov dword [esi + 0x94], ecx
mov byte [esi + 0xae], 0
jmp 0x453e7e
mov eax, dword [esp]
mov dword [eax + 0xb0], 0
mov dword [eax + 0x158], 0xd900
jmp case.0x453369.92
mov eax, dword [esp]
mov dword [eax + 0xb0], 0
mov dword [eax + 0x158], 0xd800
jmp case.0x453369.92
mov esi, dword [esp]
mov eax, dword [esi + 0x128]
mov ecx, dword [esi + 0x12c]
lea edx, [ecx - 1]
xor edi, edi
test ecx, ecx
cmovg edx, edi
lea ecx, [eax - 1]
test eax, eax
cmovg ecx, edi
mov dword [esi + 0x98], edx
jmp 0x452dbe
mov esi, dword [esp]
mov eax, dword [esi + 0x94]
test eax, eax
je 0x454289
jle 0x452e0a
dec eax
mov dword [esi + 0x94], eax
jmp 0x452e0a
mov esi, dword [esp]
mov ecx, esi
xor edx, edx
push 1
push 0
jmp 0x453fd7
xor edx, edx
inc edx
mov ecx, dword [esp]
push 1
push 0
jmp 0x454035
mov eax, dword [esp]
mov edx, dword [eax + 0x94]
mov eax, dword [eax + 0xa8]
cmp edx, eax
jg case.0x453369.92
mov ecx, dword [esp]
push 0
push 0xffffffffffffffff
jmp 0x453ed9
mov eax, dword [esp]
mov edx, dword [eax + 0x94]
mov eax, dword [eax + 0xa8]
cmp edx, eax
jg case.0x453369.92
mov ecx, dword [esp]
xor edi, edi
inc edi
push edi
push edi
push eax
call fcn.00456aa9
add esp, 0xc
jmp case.0x453369.92
mov esi, dword [esp]
mov byte [esi + 0xd4], 0
mov dword [esi + 0x40], 0x20500
xor eax, eax
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], eax
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x10], eax
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
cmp byte [esi + 0xc6], 0
je case.0x453369.92
mov eax, dword [esp]
mov dword [eax + 0x70], 0x20500
mov dword [eax + 0x78], 0
jmp case.0x453369.92
mov eax, dword [esp + 0xc]
or byte [eax + 2], 8
jmp case.0x453369.92
mov eax, dword [esp]
mov byte [eax + 0xd4], 0
and byte [eax + 0x42], 0xfb
jmp case.0x453369.92
mov eax, dword [esp]
mov byte [eax + 0xd4], 1
or byte [eax + 0x42], 4
jmp case.0x453369.92
mov eax, dword [esp + 0xc]
and byte [eax + 2], 0xf7
jmp case.0x453369.92
mov eax, dword [esp + 4]
mov dword [eax], 0xa
jmp case.0x453369.92
mov eax, dword [esp]
mov eax, dword [eax + 0x1058]
test eax, eax
je case.0x453369.92
push 0
push 3
push 0x4b0155
push eax
call fcn.0040f1b9
add esp, 0x10
jmp case.0x453369.92
mov eax, dword [esp + 4]
mov dword [eax], 0xc
jmp case.0x453369.92
mov eax, dword [esp + 4]
mov dword [eax], 0xd
jmp case.0x453369.92
mov esi, dword [esp]
mov ecx, esi
xor edx, edx
push 0
push 1
call fcn.004567be
add esp, 8
cmp byte [esi + 0x10fd], 0
je case.0x453369.92
mov eax, dword [esp]
mov dword [eax + 0x10], 0
jmp case.0x453369.92
mov eax, dword [esp]
mov byte [eax + 0xc4], 1
jmp case.0x453369.92
mov esi, dword [esp]
mov ecx, esi
xor edx, edx
inc edx
push edx
push edx
call fcn.004567be
add esp, 8
mov dword [esi + 0x98], 0
jmp 0x452e0a
xor edx, edx
inc edx
mov ecx, dword [esp]
push 0
push 1
call fcn.004567be
jmp 0x454e8c
mov eax, dword [esp + 0xc]
or byte [eax + 2], 0x10
jmp case.0x453369.92
mov eax, dword [esp + 0xc]
and byte [eax + 2], 0xef
jmp case.0x453369.92
mov eax, dword [esp]
mov byte [eax + 0xad], 1
jmp case.0x453369.92
mov eax, dword [esp]
mov byte [eax + 0xad], 0
jmp case.0x453369.92
mov ecx, dword [esi + 0x128]
dec ecx
cmp eax, ecx
jge 0x45374c
inc eax
mov dword [esi + 0x94], eax
jmp 0x45374c
dec eax
mov dword [edx + 0x98], eax
mov byte [edx + 0x142], 1
cmp byte [edx + 0x1071], 0
jne case.0x453369.92
jmp 0x4542c1
mov dword [eax + 0xe1c], 1
mov dword [eax + 0x20c], 0
jmp case.0x453369.92
cmp byte [esi + 0x10ef], 0
jne case.0x453369.92
mov eax, dword [esp]
mov dword [eax + 0x15c], 0xdb00
jmp case.0x453369.92
mov ecx, dword [esi + 0x128]
dec ecx
cmp eax, ecx
jge 0x454124
inc eax
mov dword [esi + 0x94], eax
jmp 0x454124
mov edx, dword [esi + 0x94]
cmp edx, dword [esi + 0xa4]
jne 0x4542de
mov ecx, esi
push 1
push 0xffffffffffffffff
push dword [esi + 0xa8]
call fcn.00456aa9
add esp, 0xc
mov byte [esi + 0xae], 0
jmp 0x454e67
cmp ecx, 0x226f
jle 0x454333
cmp ecx, 0x2270
je 0x454707
cmp ecx, 0x247c
je 0x454736
cmp ecx, 0x2a7c
jne case.0x453369.92
mov eax, dword [esp]
test byte [eax], 0x40
je 0x453ad2
cmp dword [eax + 0x208], 1
jne case.0x453369.92
mov eax, dword [esp]
mov eax, dword [eax + 0x188]
test eax, eax
je case.0x453369.92
mov esi, dword [esp]
cmp byte [esi + 0x10f0], 0
jne 0x453c19
mov byte [esi + 0x20a8], 1
mov ecx, dword [esi + 0x12c]
mov dword [esi + 0x20ac], ecx
mov dword [esi + 0x20b0], eax
cmp byte [esi + 0x1071], 0
jne 0x453c19
mov byte [esi + 0x1071], 1
push esi
push 0x4571bb
call fcn.0040164e
add esp, 8
jmp 0x453c19
mov ecx, ebp
mov dword [ecx], eax
mov dword [esi + 0x2c], eax
inc dword [esi + 0x30]
mov eax, dword [ebp]
test eax, eax
je 0x45421c
mov ecx, edi
sub ecx, dword [esi + 0x10c4]
cmp dword [eax + 4], ecx
jae 0x45421c
mov ecx, dword [eax]
mov dword [ebp], ecx
push eax
call fcn.00411739
add esp, 4
mov eax, dword [ebp]
test eax, eax
je 0x454212
dec dword [esi + 0x30]
jmp 0x4541eb
mov dword [esi + 0x2c], 0
dec dword [esi + 0x30]
cmp byte [esi + 0x10b8], 0
je 0x454249
cmp byte [esi + 0x34], 0
je 0x45423e
mov eax, edi
sub eax, dword [esi + 0x38]
cmp eax, dword [esi + 0x10c0]
jb 0x4542aa
mov byte [esi + 0x34], 0
jmp 0x454249
mov eax, dword [esi + 0x30]
cmp eax, dword [esi + 0x10bc]
jge 0x4542a6
mov dword [esi + 0x38], edi
mov eax, dword [esi + 0x105c]
mov ecx, dword [eax]
push dword [esi + 0x10b4]
push eax
call dword [ecx + 0x28]
add esp, 8
cmp dword [esi + 0x10b4], 2
jne 0x4542ad
mov byte [esi + 0x135], 1
push esi
push 0x4571fa
push 0x64
call fcn.00459758
add esp, 0xc
mov dword [esi + 0x138], eax
jmp 0x4542ad
mov eax, dword [esi + 0x128]
dec eax
mov ecx, esi
xor edx, edx
push 1
push 0xffffffffffffffff
push eax
call fcn.00456aa9
add esp, 0xc
jmp 0x452e0a
mov byte [esi + 0x34], 1
mov dword [esi + 0x38], edi
mov byte [esi + 0x142], 1
cmp byte [esi + 0x1071], 0
jne case.0x453369.92
mov eax, dword [esp]
mov byte [eax + 0x1071], 1
push eax
push 0x4571bb
call fcn.0040164e
add esp, 8
jmp case.0x453369.92
test edx, edx
jle 0x454124
dec edx
mov dword [esi + 0x94], edx
jmp 0x454124
cmp ecx, 0x3d63
je 0x4547ba
cmp ecx, 0x3e63
jne case.0x453369.92
mov eax, dword [esp]
test byte [eax + 1], 0x40
je 0x453d3f
mov eax, dword [eax + 0x1058]
test eax, eax
je case.0x453369.92
push 0
push 0xb
push str.e__0_136_0c
jmp 0x455790
cmp ecx, 0x169
je case.0x4533e6.105
cmp ecx, 0x16c
jne case.0x453369.92
mov ecx, dword [esp]
test byte [ecx], 2
je 0x453d3f
cmp dword [ecx + 0x208], 0
jle case.0x453369.92
mov esi, dword [esp]
mov edx, dword [esi + 0x188]
mov ecx, esi
push 0
push eax
call fcn.0045922f
add esp, 8
cmp dword [esi + 0x208], 2
jl case.0x453369.92
mov esi, ebx
mov edi, 0x63
lea ebx, [edi - 0x61]
mov ebp, dword [esp]
mov edx, dword [ebp + edi*4]
mov ecx, ebp
push 0
push dword [ebp + 0x20c]
call fcn.0045922f
add esp, 8
cmp ebx, dword [ebp + 0x208]
mov ebx, esi
jge case.0x453369.92
inc edi
jmp 0x45438a
mov eax, dword [esp]
test byte [eax], 2
je 0x453d3f
cmp dword [eax + 0x208], 1
jne case.0x453369.92
mov esi, dword [esp]
mov eax, dword [esi + 0x188]
cmp eax, 5
jne 0x45580c
push 0x8a
push dword [esi + 0x106c]
call fcn.00403392
add esp, 8
cmp byte [eax], 0
je 0x455806
mov edi, eax
mov byte [esi + 0xe4], 1
cmp dword [esi + 0x20c], 0
sete byte [esi + 0xe5]
mov dword [esi + 0xe8], 0
push dword [esp + 0x30]
call fcn.0045b3d4
add esp, 4
push edi
call fcn.004705d2
add esp, 4
mov dword [esi + 0x100], eax
jmp case.0x453369.92
mov dword [esp + 8], ebx
mov esi, dword [esp]
cmp dword [esi + 0x208], 1
jg 0x454459
mov dword [esi + 0x18c], 0
mov eax, dword [esi + 0x188]
mov ecx, dword [esi + 0x128]
cmp eax, ecx
cmova eax, ecx
mov ecx, dword [esi + 0x12c]
mov dword [esi + 0x188], eax
mov edx, dword [esi + 0x18c]
cmp edx, ecx
cmova edx, ecx
mov dword [esi + 0x18c], edx
movzx ebp, byte [esi + 0xac]
mov edi, ebp
add edi, ebp
xor ecx, ecx
mov ebx, 0
test ebp, ebp
je 0x4544a3
mov ebx, dword [esi + 0xa4]
sub eax, 1
cmovb eax, ecx
add eax, ebx
sub edx, 1
cmovb edx, ecx
mov ecx, esi
push edi
push eax
call fcn.00458616
add esp, 8
mov byte [esi + 0x142], 1
cmp byte [esi + 0x1071], 0
mov ebx, dword [esp + 8]
jne case.0x453369.92
jmp 0x454e77
cmp ecx, 0x168
jne case.0x453369.92
mov ecx, dword [esp]
test byte [ecx], 2
je 0x453d3f
cmp dword [ecx + 0x208], 0
jle case.0x453369.92
mov esi, dword [esp]
mov edx, dword [esi + 0x188]
mov ecx, esi
push 1
push eax
call fcn.0045922f
add esp, 8
cmp dword [esi + 0x208], 2
jl case.0x453369.92
mov esi, ebx
mov edi, 0x63
lea ebx, [edi - 0x61]
mov ebp, dword [esp]
mov edx, dword [ebp + edi*4]
mov ecx, ebp
push 1
push dword [ebp + 0x20c]
call fcn.0045922f
add esp, 8
cmp ebx, dword [ebp + 0x208]
mov ebx, esi
jge case.0x453369.92
inc edi
jmp 0x454529
mov esi, dword [esp]
test byte [esi + 1], 0x10
je 0x453ad2
mov byte [esi + 0xc9], 0
mov ecx, esi
call fcn.0044f451
cmp dword [esi + 0x188], 0
mov eax, dword [esi + 0x40]
je 0x455777
or eax, 0x200000
jmp 0x45577c
mov ecx, dword [esp]
test byte [ecx + 1], 0x10
je 0x453ad2
cmp dword [ecx + 0x188], 0
setne byte [ecx + 0xc9]
jmp 0x452d6d
mov eax, dword [esp]
test byte [eax + 1], 0x10
je 0x453ad2
mov ecx, dword [eax + 0x188]
cmp ecx, 0xf
ja case.0x453369.92
mov eax, ecx
and eax, 7
movsx eax, byte [eax + 0x49fb24]
and ecx, 8
or ecx, eax
mov esi, dword [esp]
mov eax, dword [esi + 0x40]
mov edi, 0xfffffe00
and eax, edi
or eax, ecx
mov dword [esi + 0x40], eax
mov dword [esi + 0x48], 0
mov edx, dword [esi + 0x3c]
and edx, edi
or edx, ecx
mov dword [esi + 0x3c], edx
mov esi, dword [esp + 0x18]
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x14]
mov dword [edx + 0x10], ecx
movups xmm0, xmmword [esi]
movups xmmword [edx], xmm0
mov ecx, dword [esp]
cmp byte [ecx + 0xc6], 0
je case.0x453369.92
and eax, 0x3ffff
mov ecx, dword [esp]
mov dword [ecx + 0x70], eax
jmp 0x452eb3
mov eax, dword [esp]
test byte [eax + 1], 0x10
je 0x453ad2
mov eax, dword [eax + 0x188]
cmp eax, 0xf
ja case.0x453369.92
mov ecx, eax
and ecx, 7
movsx ecx, byte [ecx + 0x49fb24]
and eax, 8
or eax, ecx
shl eax, 9
mov esi, dword [esp]
mov ecx, dword [esi + 0x40]
mov edi, 0xfffc01ff
and ecx, edi
or ecx, eax
mov dword [esi + 0x40], ecx
mov dword [esi + 0x4c], 0
mov edx, dword [esi + 0x3c]
and edx, edi
or edx, eax
mov dword [esi + 0x3c], edx
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x10]
mov edx, dword [esp + 0x14]
mov dword [edx + 0x10], eax
movups xmm0, xmmword [esi]
movups xmmword [edx], xmm0
mov eax, dword [esp]
cmp byte [eax + 0xc6], 0
je case.0x453369.92
and ecx, 0x3ffff
mov eax, dword [esp]
mov dword [eax + 0x70], ecx
jmp 0x453f2b
mov eax, dword [esp]
test byte [eax + 1], 0x10
je 0x453ad2
cmp dword [eax + 0x188], 0
sete byte [eax + 0xc6]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x10], eax
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
jne case.0x453369.92
mov edx, dword [esp]
mov eax, dword [edx + 0x40]
mov ecx, 0x3ffff
and eax, ecx
mov dword [edx + 0x70], eax
mov eax, dword [edx + 0x4c]
mov dword [edx + 0x78], eax
jmp case.0x453369.92
mov eax, dword [esi + 0x188]
cmp eax, 0x29
jle 0x455673
cmp eax, 0x3c
jg 0x45569b
cmp eax, 0x2a
je 0x455796
cmp eax, 0x32
je 0x455850
jmp 0x4557ca
test byte [esi + 1], 1
je 0x453ad2
cmp dword [esi + 0x208], 1
jg case.0x453369.92
mov esi, dword [esp]
cmp byte [esi + 0x10f0], 0
mov edi, dword [esp + 0x28]
jne 0x4547a4
mov byte [esi + 0x20a8], 1
mov eax, dword [esi + 0x188]
test eax, eax
jne 0x454774
mov eax, dword [esi + 0x10d4]
mov dword [esi + 0x20ac], eax
mov eax, dword [esi + 0x128]
mov dword [esi + 0x20b0], eax
cmp byte [esi + 0x1071], 0
jne 0x4547a4
mov byte [esi + 0x1071], 1
push esi
push 0x4571bb
call fcn.0040164e
add esp, 8
mov dword [esi + 0xe20], 0
mov eax, dword [esp + 0x1c]
xorps xmm0, xmm0
jmp 0x455587
mov ecx, dword [esp]
test byte [ecx + 1], 0x10
je 0x453ad2
mov eax, dword [ecx + 0x188]
cmp eax, 2
je 0x4557e0
cmp eax, 1
je 0x4557f3
test eax, eax
jne case.0x453369.92
mov eax, dword [esp]
mov byte [eax + 0xc4], 0
jmp case.0x453369.92
mov esi, dword [esp]
test byte [esi], 8
je 0x453d3f
mov eax, dword [esi + 0x12c]
mov edx, dword [esi + 0x188]
cmp edx, eax
cmova edx, eax
mov dword [esi + 0x188], edx
test edx, edx
mov eax, 1
cmove edx, eax
jmp 0x454a3d
mov esi, dword [esp]
mov eax, dword [esi + 0x188]
mov ecx, dword [esi + 0x128]
cmp eax, ecx
cmova eax, ecx
mov dword [esi + 0x188], eax
test eax, eax
mov ecx, 1
cmove eax, ecx
mov edi, dword [esi + 0x94]
sub edi, eax
mov edx, dword [esi + 0x98]
mov ecx, esi
jmp 0x45490c
mov esi, dword [esp]
mov eax, dword [esi + 0x188]
mov ecx, dword [esi + 0x12c]
cmp eax, ecx
cmova eax, ecx
mov dword [esi + 0x188], eax
mov edx, dword [esi + 0x98]
test eax, eax
mov ecx, 1
cmove eax, ecx
sub edx, eax
mov ecx, esi
push 1
push dword [esi + 0x94]
jmp 0x454e5f
mov esi, dword [esp]
test byte [esi + 1], 0x20
je 0x453d3f
mov eax, dword [esi + 0x128]
mov edi, dword [esi + 0x188]
cmp edi, eax
cmova edi, eax
mov dword [esi + 0x188], edi
test edi, edi
mov eax, 1
cmove edi, eax
add edi, dword [esi + 0x94]
jmp 0x454908
mov esi, dword [esp]
test byte [esi + 1], 0x20
je 0x453d3f
mov eax, dword [esi + 0x188]
mov edi, dword [esi + 0x94]
mov ecx, dword [esi + 0x128]
cmp eax, ecx
cmova eax, ecx
mov dword [esi + 0x188], eax
test eax, eax
mov ecx, 1
cmove eax, ecx
sub edi, eax
mov ecx, esi
xor edx, edx
push 1
push edi
jmp 0x454e5f
mov esi, dword [esp]
mov eax, dword [esi + 0x188]
cmp eax, 3
jne 0x45564d
cmp byte [esi + 0x10f2], 0
jne 0x4539f6
push esi
call fcn.0044f546
add esp, 4
jmp 0x4539f6
mov esi, dword [esp]
mov eax, dword [esi + 0x188]
inc eax
xor edi, edi
cmp eax, 3
cmovbe edi, eax
mov eax, edi
and eax, 1
and edi, 2
shr edi, 1
xor edx, edx
inc edx
mov ecx, esi
push eax
push edi
call fcn.004567be
add esp, 8
jmp 0x45559f
mov esi, dword [esp]
test byte [esi], 8
je 0x453d3f
mov eax, dword [esi + 0x188]
mov ecx, dword [esi + 0x128]
cmp eax, ecx
cmova eax, ecx
mov dword [esi + 0x188], eax
mov edx, dword [esi + 0x94]
mov edi, dword [esi + 0xa8]
cmp edx, edi
jg 0x45559f
test eax, eax
mov ecx, 1
cmove eax, ecx
neg eax
mov ecx, esi
push 0
jmp 0x4549ff
mov esi, dword [esp]
test byte [esi], 8
je 0x453d3f
mov eax, dword [esi + 0x188]
mov ecx, dword [esi + 0x128]
cmp eax, ecx
cmova eax, ecx
mov dword [esi + 0x188], eax
mov edx, dword [esi + 0x94]
mov edi, dword [esi + 0xa8]
cmp edx, edi
jg 0x45559f
test eax, eax
mov ecx, 1
cmove eax, ecx
mov ecx, esi
push 1
push eax
push edi
call fcn.00456aa9
add esp, 0xc
jmp 0x45559f
mov esi, dword [esp]
test byte [esi], 8
je 0x453d3f
mov eax, dword [esi + 0x12c]
mov edx, dword [esi + 0x188]
cmp edx, eax
cmova edx, eax
mov dword [esi + 0x188], edx
test edx, edx
mov eax, 1
cmove edx, eax
neg edx
mov ecx, esi
call fcn.00458ed5
jmp 0x45559f
mov esi, dword [esp]
mov ecx, dword [esi + 0x128]
mov eax, dword [esi + 0x188]
cmp eax, ecx
cmova eax, ecx
mov dword [esi + 0x188], eax
test byte [esi + 1], 0x10
je 0x453d3f
test eax, eax
mov ecx, 1
cmove eax, ecx
mov edx, dword [esi + 0xa4]
mov ecx, esi
push 1
push eax
push dword [esi + 0xa8]
call fcn.00456aa9
add esp, 0xc
mov byte [esi + 0xae], 0
jmp 0x45559f
mov esi, dword [esp]
mov ecx, dword [esi + 0x128]
mov eax, dword [esi + 0x188]
cmp eax, ecx
cmova eax, ecx
mov dword [esi + 0x188], eax
test byte [esi + 1], 0x10
je 0x453ad2
test eax, eax
mov ecx, 1
cmove eax, ecx
neg eax
mov edx, dword [esi + 0xa4]
mov ecx, esi
push 1
push eax
push dword [esi + 0xa8]
call fcn.00456aa9
add esp, 0xc
jmp 0x45386c
mov edi, dword [esp]
test byte [edi], 1
je 0x453ad2
mov ecx, dword [edi + 0x188]
mov eax, dword [edi + 0x12c]
cmp ecx, eax
cmova ecx, eax
mov dword [edi + 0x188], ecx
test ecx, ecx
mov eax, 1
cmove ecx, eax
mov dword [esp + 0x20], ecx
mov edx, dword [edi + 0x94]
mov ebp, dword [edi + 0x98]
mov ecx, edi
push 1
push 0x12fe
call fcn.0044f60a
add esp, 8
mov esi, eax
mov al, byte [eax + 0x18]
cmp al, byte [edi + 0x10a4]
je 0x454b57
mov ecx, edi
mov edx, esi
call fcn.00456f0c
mov al, byte [edi + 0x10a4]
mov byte [esi + 0x18], al
mov dword [esp + 0x10], esi
mov dword [esp + 8], ebx
mov ebx, edi
mov edi, dword [edi + 0x12c]
mov eax, dword [ebx + 0x94]
mov edx, dword [ebx + 0x98]
sub edi, edx
mov ecx, dword [esp + 0x20]
cmp ecx, edi
cmovle edi, ecx
mov ecx, ebx
mov esi, edx
mov dword [esp + 0x20], eax
push eax
call fcn.00456d7c
add esp, 4
mov edx, dword [ebx + 0x98]
add edx, edi
mov ecx, ebx
push dword [ebx + 0x94]
call fcn.00456d7c
add esp, 4
mov edx, dword [ebx + 0xe34]
mov ecx, dword [ebx + 0xe38]
xor eax, eax
cmp ecx, dword [ebx + 0x98]
setg al
xor ecx, ecx
cmp edx, dword [ebx + 0x94]
setg cl
cmove ecx, eax
cmp cl, 1
jne 0x454c09
add esi, edi
xor eax, eax
cmp dword [ebx + 0xe30], esi
setl al
xor ecx, ecx
mov edx, dword [esp + 0x20]
cmp dword [ebx + 0xe2c], edx
setl cl
cmove ecx, eax
cmp cl, 1
jne 0x454c09
mov dword [ebx + 0xe20], 0
xorps xmm0, xmm0
mov eax, dword [esp + 0x1c]
movups xmmword [eax], xmm0
test edi, edi
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
je 0x454c2e
lea ebx, [ebp + 1]
mov ecx, esi
mov edx, ebp
push eax
mov ebp, eax
call fcn.00456e3d
mov eax, ebp
add esp, 4
mov ebp, ebx
dec edi
jne 0x454c15
mov eax, dword [esp]
mov byte [eax + 0x142], 1
cmp byte [eax + 0x1071], 0
mov ebx, dword [esp + 8]
jne case.0x453369.92
jmp 0x4542c1
mov esi, dword [esp]
test byte [esi + 1], 0x40
je 0x453ad2
mov dword [esp + 8], ebx
mov edx, dword [esi + 0x188]
mov eax, dword [esi + 0x12c]
cmp edx, eax
cmova edx, eax
mov dword [esi + 0x188], edx
test edx, edx
mov ecx, dword [esi + 0x98]
mov eax, 1
cmove edx, eax
mov eax, ecx
test edx, edx
jle 0x45570e
mov ebx, ecx
test ebx, ebx
jle 0x45570c
lea edi, [ebx - 1]
mov dword [esi + 0x98], edi
xor eax, eax
cmp ebx, 1
je 0x454cca
mov ebx, dword [esi + 0xe18]
cmp byte [ebx + edi], 0
jne 0x454cc8
lea ebp, [edi - 1]
mov dword [esi + 0x98], ebp
cmp edi, 2
mov edi, ebp
jge 0x454cb0
jmp 0x454cca
mov eax, edi
lea edi, [edx - 1]
mov ebx, eax
cmp edx, 1
mov edx, edi
jg 0x454c92
jmp 0x45570e
mov eax, dword [esp]
test byte [eax + 1], 0x20
je 0x453d3f
mov esi, dword [esp]
mov edx, dword [esi + 0x188]
mov eax, dword [esi + 0x12c]
cmp edx, eax
cmova edx, eax
mov eax, dword [esi + 0x94]
mov dword [esi + 0x188], edx
test edx, edx
mov ecx, 1
cmove edx, ecx
add edx, dword [esi + 0x98]
jmp 0x454e5a
mov edx, dword [esp]
mov eax, dword [edx + 0x12c]
mov ecx, dword [edx + 0x188]
imul eax, dword [edx + 0x128]
cmp ecx, eax
cmovbe eax, ecx
mov dword [edx + 0x188], eax
mov edx, dword [edx + 0x1068]
test edx, edx
je case.0x453369.92
test eax, eax
je case.0x453369.92
mov esi, dword [esp]
mov ecx, esi
call fcn.004586a9
cmp dword [esi + 0x188], 2
jb case.0x453369.92
mov edi, 2
mov esi, dword [esp]
mov edx, dword [esi + 0x1068]
mov ecx, esi
call fcn.004586a9
cmp edi, dword [esi + 0x188]
jae case.0x453369.92
inc edi
jmp 0x454d70
mov eax, dword [esp]
test byte [eax], 2
je 0x453d3f
mov edi, dword [eax + 0x1058]
test edi, edi
jne 0x45338a
jmp case.0x453369.92
mov ebp, dword [esp]
test byte [ebp + 1], 0x20
je 0x453d3f
mov esi, ebx
mov ecx, dword [ebp + 0x128]
mov eax, dword [ebp + 0x188]
cmp eax, ecx
cmova eax, ecx
mov dword [ebp + 0x188], eax
movzx ebx, byte [ebp + 0xac]
lea edi, [ebx + ebx]
xor ecx, ecx
mov edx, 0
test ebx, ebx
je 0x454def
mov edx, dword [ebp + 0xa4]
sub eax, 1
cmovb eax, ecx
add eax, edx
mov edx, dword [ebp + 0x98]
mov ecx, ebp
push edi
push eax
call fcn.00458616
add esp, 8
mov byte [ebp + 0x142], 1
cmp byte [ebp + 0x1071], 0
mov ebx, esi
jne case.0x453369.92
jmp 0x454e77
mov eax, dword [esp]
test byte [eax + 1], 0x20
je 0x453d3f
mov esi, dword [esp]
mov eax, dword [esi + 0x188]
mov ecx, dword [esi + 0x128]
cmp eax, ecx
cmova eax, ecx
mov edx, dword [esi + 0x98]
mov dword [esi + 0x188], eax
test eax, eax
mov ecx, 1
cmove eax, ecx
add eax, dword [esi + 0x94]
mov ecx, esi
push 1
push eax
call fcn.00458616
add esp, 8
mov byte [esi + 0x142], 1
cmp byte [esi + 0x1071], 0
jne case.0x453369.92
mov eax, dword [esp]
mov byte [eax + 0x1071], 1
push eax
push 0x4571bb
call fcn.0040164e
add esp, 8
mov esi, dword [esp]
cmp dword [esi + 0xe20], 0
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x24]
je 0x452840
mov ebp, ebx
mov edx, dword [esi + 0x94]
mov ecx, dword [esi + 0x98]
mov dword [esp + 0x48], edx
cmp ecx, dword [esi + 0x12c]
mov eax, ecx
mov edi, 0
cmove eax, edi
mov edi, ecx
cmove edi, edx
mov dword [esp + 0x38], eax
lea eax, [esp + 0x38]
lea ebx, [esp + 0x48]
cmove eax, ebx
inc edi
mov dword [eax], edi
xor eax, eax
cmp dword [esi + 0xe38], ecx
setg al
xor ecx, ecx
cmp dword [esi + 0xe34], edx
setg cl
cmove ecx, eax
cmp cl, 1
jne 0x454f37
mov ecx, dword [esp + 0x48]
mov edx, dword [esi + 0xe30]
xor eax, eax
cmp edx, dword [esp + 0x38]
setl al
xor edx, edx
cmp dword [esi + 0xe2c], ecx
setl dl
cmovne eax, edx
cmp al, 1
jne 0x454f37
mov dword [esi + 0xe20], 0
mov eax, dword [esp + 0x1c]
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov ebx, ebp
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x24]
jmp 0x452840
mov eax, dword [esp]
test byte [eax], 2
je 0x453d3f
cmp dword [eax + 0x208], 1
jne case.0x453369.92
mov ecx, dword [esp]
mov eax, dword [ecx + 0x188]
test eax, eax
je 0x455832
cmp eax, 3
jne case.0x453369.92
mov eax, dword [esp]
cmp dword [eax + 0x12c], 0
jle case.0x453369.92
xor eax, eax
mov edx, dword [esp]
mov ecx, dword [edx + 0xe18]
mov byte [ecx + eax], 0
inc eax
cmp eax, dword [edx + 0x12c]
jl 0x454f8b
jmp case.0x453369.92
mov esi, dword [esp]
mov eax, dword [esi + 0x208]
test eax, eax
mov ebp, dword [esp + 4]
jle 0x455613
xor edi, edi
mov ecx, dword [esi + edi*4 + 0x188]
cmp ecx, 0x6b
ja case.0x454fcd.3
jmp dword [ecx*4 + 0x49ff20]
mov byte [esi + 0x48], 0
mov ecx, 0xfffffe00
and ecx, dword [esi + 0x40]
mov dword [esi + 0x40], ecx
mov edx, dword [esi + edi*4 + 0x188]
add edx, 0xffffffe2
jmp 0x45504a
mov byte [esi + 0x4c], 0
mov ecx, 0xfffc01ff
and ecx, dword [esi + 0x40]
mov dword [esi + 0x40], ecx
mov edx, dword [esi + edi*4 + 0x188]
shl edx, 9
add edx, 0xffffb000
jmp 0x45504a
mov byte [esi + 0x48], 0
mov ecx, 0xfffffe00
and ecx, dword [esi + 0x40]
mov dword [esi + 0x40], ecx
mov edx, dword [esi + edi*4 + 0x188]
add edx, 0xffffffae
jmp 0x45504a
mov byte [esi + 0x4c], 0
mov ecx, 0xfffc01ff
and ecx, dword [esi + 0x40]
mov dword [esi + 0x40], ecx
mov edx, dword [esi + edi*4 + 0x188]
shl edx, 9
add edx, 0xffff4800
or edx, ecx
mov dword [esi + 0x40], edx
inc edi
cmp edi, eax
jl 0x454fbd
jmp 0x455613
mov ecx, dword [esi + 0x3c]
mov edx, dword [esi + 0x60]
mov dword [esi + 0x40], ecx
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], edx
jmp case.0x454fcd.3
test byte [esi], 4
je 0x4551d5
mov ecx, dword [esp + 0xc]
or byte [ecx + 2], 4
jmp case.0x454fcd.3
test byte [esi + 1], 0x40
je 0x4551d5
mov ecx, dword [esp + 0xc]
or byte [ecx + 3], 1
jmp case.0x454fcd.3
test byte [esi], 4
je 0x4551d5
mov ecx, dword [esp + 0xc]
or byte [ecx + 2], 0x20
jmp case.0x454fcd.3
test byte [esi + 1], 0x10
je 0x4551d5
mov byte [esi + 0xc9], 0
or byte [esi + 0x42], 0x20
mov ecx, esi
call fcn.0044f451
mov eax, dword [esi + 0x208]
jmp case.0x454fcd.3
mov ecx, dword [esp + 0xc]
or byte [ecx + 2], 0x10
jmp case.0x454fcd.3
mov ecx, dword [esp + 0xc]
or byte [ecx + 3], 2
jmp case.0x454fcd.3
test byte [esi + 1], 0x10
je 0x4551d5
cmp byte [esi + 0x10ef], 0
jne case.0x454fcd.3
mov dword [esi + 0xcc], 0
jmp case.0x454fcd.3
test byte [esi + 1], 0x10
je 0x4551d5
cmp byte [esi + 0x10ef], 0
jne case.0x454fcd.3
mov dword [esi + 0xcc], 1
jmp case.0x454fcd.3
test byte [esi + 1], 0x10
je 0x4551d5
cmp byte [esi + 0x10ef], 0
jne case.0x454fcd.3
mov dword [esi + 0xcc], 2
jmp case.0x454fcd.3
test byte [esi + 1], 0x40
je 0x4551d5
test byte [esi], 4
je 0x4551d5
mov ecx, dword [esp + 0xc]
or byte [ecx + 2], 8
jmp case.0x454fcd.3
movzx ecx, word [esi]
test ecx, 0x4010
je 0x4551d5
mov ecx, dword [esp + 0xc]
and dword [ecx], 0xfefbffff
jmp case.0x454fcd.3
movzx ecx, word [esi]
test ecx, 0x4010
je 0x4551d5
mov ecx, dword [esp + 0xc]
and byte [ecx + 2], 0xf7
jmp case.0x454fcd.3
movzx ecx, word [esi]
test ecx, 0x4010
je 0x4551d5
mov ecx, dword [esp + 0xc]
and byte [ecx + 2], 0xdf
jmp case.0x454fcd.3
movzx ecx, word [esi]
test ecx, 0x4010
je 0x4551d5
mov ecx, dword [esp + 0xc]
and byte [ecx + 2], 0xef
jmp case.0x454fcd.3
mov dword [ebp], 0
jmp case.0x454fcd.3
mov ecx, dword [esp + 0xc]
and byte [ecx + 3], 0xfd
jmp case.0x454fcd.3
lea ecx, [edi + 2]
cmp ecx, eax
jge 0x4552a2
cmp dword [esi + edi*4 + 0x18c], 5
jne 0x4552a2
mov edx, 0xfffffe00
and edx, dword [esi + 0x40]
mov dword [esi + 0x40], edx
movzx edi, byte [esi + edi*4 + 0x190]
or edi, edx
mov dword [esi + 0x40], edi
mov dword [esi + 0x48], 0
jmp 0x4552a4
mov byte [esi + 0x48], 0
mov ecx, 0xfffffe00
and ecx, dword [esi + 0x40]
or ecx, 0x100
jmp 0x45529a
lea ecx, [edi + 2]
cmp ecx, eax
jge 0x455315
cmp dword [esi + edi*4 + 0x18c], 5
jne 0x455315
mov edx, 0xfffc01ff
and edx, dword [esi + 0x40]
mov dword [esi + 0x40], edx
mov esi, ebx
mov ebx, dword [esp]
mov ebx, dword [ebx + edi*4 + 0x190]
movzx edi, bl
mov ebx, esi
mov esi, dword [esp]
shl edi, 9
or edi, edx
mov dword [esi + 0x40], edi
mov dword [esi + 0x4c], 0
jmp 0x455317
mov byte [esi + 0x4c], 0
mov ecx, 0xfffc01ff
and ecx, dword [esi + 0x40]
or ecx, 0x20400
mov dword [esi + 0x40], ecx
jmp case.0x454fcd.3
mov ecx, edi
lea edi, [ecx + 4]
cmp edi, eax
jge 0x455380
cmp dword [esi + ecx*4 + 0x18c], 2
jne 0x455380
mov byte [esi + 0x48], 1
mov dword [esp + 8], ebx
mov edx, dword [esp]
mov ebx, dword [edx + ecx*4 + 0x190]
xor edx, edx
mov ebp, 0x100
cmp ebx, ebp
cmovae ebx, edx
mov esi, dword [esp]
mov byte [esi + 0x49], bl
mov esi, dword [esp]
mov ebx, dword [esi + ecx*4 + 0x194]
cmp ebx, ebp
cmovae ebx, edx
mov esi, dword [esp]
mov byte [esi + 0x4a], bl
mov ebx, dword [esp + 8]
mov esi, dword [esp]
mov ecx, dword [esi + ecx*4 + 0x198]
cmp ecx, ebp
mov ebp, dword [esp + 4]
cmovb edx, ecx
mov byte [esi + 0x4b], dl
jmp case.0x454fcd.3
mov ecx, edi
lea edi, [ecx + 4]
cmp edi, eax
jge 0x455380
cmp dword [esi + ecx*4 + 0x18c], 2
jne 0x455380
mov byte [esi + 0x4c], 1
mov dword [esp + 8], ebx
mov edx, dword [esp]
mov ebx, dword [edx + ecx*4 + 0x190]
xor edx, edx
mov ebp, 0x100
cmp ebx, ebp
cmovae ebx, edx
mov esi, dword [esp]
mov byte [esi + 0x4d], bl
mov esi, dword [esp]
mov ebx, dword [esi + ecx*4 + 0x194]
cmp ebx, ebp
cmovae ebx, edx
mov esi, dword [esp]
mov byte [esi + 0x4e], bl
mov ebx, dword [esp + 8]
mov esi, dword [esp]
mov ecx, dword [esi + ecx*4 + 0x198]
cmp ecx, ebp
mov ebp, dword [esp + 4]
cmovb edx, ecx
mov byte [esi + 0x4f], dl
jmp case.0x454fcd.3
mov edi, ecx
jmp case.0x454fcd.3
mov eax, dword [esp]
mov eax, dword [eax + 0x1058]
test eax, eax
je case.0x453369.92
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x188]
cmp ecx, 5
je 0x455787
cmp ecx, 6
jne case.0x453369.92
mov esi, dword [esp]
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0x98]
inc ecx
inc eax
push ecx
push eax
push str.e__d__dR
lea edi, [esp + 0x54]
push edi
call fcn.00403e60
add esp, 0x10
push edi
call fcn.00485930
add esp, 4
push 0
push eax
push edi
push dword [esi + 0x1058]
jmp 0x45339c
mov eax, dword [esp]
test byte [eax], 2
je 0x453d3f
mov edx, dword [eax + 0x208]
cmp edx, 2
jg case.0x453369.92
mov ecx, dword [esp]
mov edi, dword [ecx + 0x128]
mov eax, dword [ecx + 0x188]
cmp eax, edi
cmova eax, edi
mov dword [ecx + 0x188], eax
mov esi, ebx
mov ebx, dword [ecx + 0x18c]
cmp ebx, edi
cmova ebx, edi
mov dword [ecx + 0x18c], ebx
xor ecx, ecx
sub eax, 1
cmovb eax, ecx
test ebx, ebx
cmove ebx, edi
cmp edx, 2
cmovne ebx, edi
dec ebx
lea edx, [edi - 1]
cmp ebx, edi
cmovl edx, ebx
mov ebx, esi
cmp edx, eax
jle case.0x453369.92
mov esi, dword [esp]
mov dword [esi + 0xa4], eax
mov dword [esi + 0xa8], edx
mov dword [esi + 0x98], ecx
cmp byte [esi + 0xac], 0
cmove eax, ecx
mov dword [esi + 0x94], eax
jmp 0x45559f
mov edx, dword [esp]
mov eax, dword [edx + 0x94]
mov ecx, dword [edx + 0x98]
mov dword [edx + 0xa0], ecx
mov dword [edx + 0x9c], eax
mov eax, dword [edx + 0x40]
mov ecx, dword [edx + 0x48]
mov dword [edx + 0x44], eax
mov eax, dword [edx + 0x4c]
mov dword [edx + 0x54], eax
mov dword [edx + 0x50], ecx
mov eax, dword [edx + 0xb0]
mov dword [edx + 0xb4], eax
mov cl, byte [edx + 0xd5]
mov byte [edx + 0xbc], cl
mov cl, byte [edx + 0xae]
mov byte [edx + 0xbd], cl
mov eax, dword [edx + eax*4 + 0x158]
mov dword [edx + 0xb8], eax
mov eax, dword [edx + 0xcc]
mov dword [edx + 0xd0], eax
jmp case.0x453369.92
mov eax, dword [esp]
mov eax, dword [eax + 0x208]
cmp eax, 1
jg 0x4556cb
mov esi, dword [esp]
mov ecx, dword [esi + 0x188]
lea edx, [ecx - 1]
cmp edx, 0x17
jb 0x4556c3
test byte [esi + 1], 1
je 0x453d3f
cmp byte [esi + 0x10f0], 0
mov edi, dword [esp + 0x28]
jne 0x455576
test ecx, ecx
mov byte [esi + 0x20a8], 1
mov eax, 0x18
cmovne eax, ecx
mov ecx, dword [esi + 0x12c]
mov dword [esi + 0x20ac], ecx
mov dword [esi + 0x20b0], eax
cmp byte [esi + 0x1071], 0
jne 0x455576
mov byte [esi + 0x1071], 1
push esi
push 0x4571bb
call fcn.0040164e
add esp, 8
mov dword [esi + 0xe20], 0
xorps xmm0, xmm0
mov eax, dword [esp + 0x1c]
movups xmmword [eax], xmm0
mov ebp, dword [esp + 0x24]
jmp 0x452840
mov esi, dword [esp]
mov ecx, esi
xor edx, edx
call fcn.00458d9d
mov byte [esi + 0x142], 1
cmp byte [esi + 0x1071], 0
jne case.0x453369.92
jmp 0x454e77
mov eax, dword [esp]
test byte [eax], 2
je 0x453ad2
mov eax, dword [eax + 0x1058]
test eax, eax
je case.0x453369.92
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x188]
cmp ecx, 1
ja case.0x453369.92
movups xmm0, xmmword [str.e_2_1_1_112_112_1_0x]
movups xmmword [esp + 0x48], xmm0
movsd xmm0, qword [0x4a781f]
movsd qword [esp + 0x55], xmm0
add cl, 0x32
mov byte [esp + 0x4a], cl
push 0
push 0x14
lea ecx, [esp + 0x50]
push ecx
jmp 0x455790
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x10], eax
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
cmp byte [esi + 0xc6], 0
je case.0x453369.92
mov eax, 0x3ffff
mov ecx, dword [esp]
and eax, dword [ecx + 0x40]
mov dword [ecx + 0x70], eax
mov eax, dword [ecx + 0x4c]
mov dword [ecx + 0x78], eax
jmp case.0x453369.92
inc eax
xor ecx, ecx
cmp eax, 3
cmova eax, ecx
mov edi, eax
and edi, 1
and eax, 2
shr eax, 1
mov ecx, esi
xor edx, edx
push edi
push eax
call fcn.004567be
add esp, 8
jmp 0x4539f6
test eax, eax
je 0x4557a1
cmp eax, 0x28
je 0x4557ac
cmp eax, 0x29
jne 0x4557ca
mov eax, dword [esp]
mov dword [eax], 0xffff
jmp case.0x453369.92
cmp eax, 0x3e
je 0x4557b7
cmp eax, 0x3d
jne 0x4557ca
mov edx, dword [esp]
mov eax, dword [edx]
mov ecx, 0xfffffe00
and eax, ecx
or eax, 0xf
mov dword [edx], eax
jmp case.0x453369.92
test eax, eax
jle case.0x453369.92
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x188]
dec ecx
cmp ecx, 0x16
ja case.0x453369.92
mov edx, dword [esp]
test byte [edx + 1], 0x40
je 0x453d3f
cmp ecx, 0x14
ja case.0x453369.92
jmp dword [ecx*4 + 0x49fecc]
mov eax, dword [esp]
mov word [eax + 0x20b6], 1
jmp 0x4559f9
mov eax, ebx
mov edx, dword [esi + 0x94]
xor ebx, ebx
cmp dword [esi + 0xe38], ecx
setg bl
xor ecx, ecx
cmp dword [esi + 0xe34], edx
setg cl
cmove ecx, ebx
cmp cl, 1
mov ebx, dword [esp + 8]
jne case.0x453369.92
xor ecx, ecx
mov esi, dword [esp]
cmp dword [esi + 0xe30], eax
setl cl
xor eax, eax
cmp dword [esi + 0xe2c], edx
setl al
cmove eax, ecx
cmp al, 1
jne case.0x453369.92
mov esi, dword [esp]
mov dword [esi + 0xe20], 0
xorps xmm0, xmm0
mov eax, dword [esp + 0x1c]
jmp 0x453c2a
and eax, 0xffdfffff
mov ecx, dword [esp + 0xc]
mov dword [ecx], eax
jmp case.0x453369.92
push 0
push 4
push str.e_0n
push eax
jmp 0x45339c
mov dword [esi], 0x1001
jmp case.0x453369.92
mov dword [esi], 0xffff
jmp case.0x453369.92
and dword [esi], 0x1ff
jmp case.0x453369.92
mov eax, dword [esi]
mov ecx, 0xfffffe00
and eax, ecx
or eax, 0x1f
mov dword [esi], eax
jmp case.0x453369.92
lea ecx, [eax - 0x3d]
cmp ecx, 8
ja 0x455847
mov eax, dword [esp]
or dword [eax], 0x1ff
jmp case.0x453369.92
mov al, 1
mov byte [ecx + 0x143], al
mov byte [ecx + 0xc4], al
jmp case.0x453369.92
mov byte [ecx + 0x143], 0
mov byte [ecx + 0xc4], 1
jmp case.0x453369.92
mov eax, dword [esi + 0x188]
cmp eax, 4
jne case.0x453369.92
mov eax, dword [esp]
cmp byte [eax + 0xe4], 0
je case.0x453369.92
mov ecx, dword [esp]
call fcn.0044f37a
jmp case.0x453369.92
mov eax, dword [ecx + 0xe18]
mov ecx, dword [ecx + 0x98]
mov byte [eax + ecx], 0
jmp case.0x453369.92
cmp eax, 0x32
jne case.0x453369.92
mov dword [esp + 8], ebx
mov eax, dword [esp]
mov dword [eax + 0xa16], 0x3f5b1b
cmp dword [eax + 0x208], 2
mov ebp, dword [esp + 0x2c]
jl 0x4558bd
xor edi, edi
test edi, edi
mov esi, dword [esp]
je 0x45588a
push ebp
call fcn.00485930
add esp, 4
mov word [esi + eax + 0xa16], 0x3b
push dword [esi + edi*4 + 0x18c]
push 0x4a7bc6
lea ebx, [esp + 0x50]
push ebx
call fcn.00403e60
add esp, 0xc
push ebx
push ebp
call fcn.004853b0
add esp, 8
lea eax, [edi + 1]
add edi, 2
cmp edi, dword [esi + 0x208]
mov edi, eax
jl 0x455870
push ebp
call fcn.00485930
add esp, 4
mov ecx, dword [esp]
mov word [ecx + eax + 0xa16], 0x63
mov ebx, dword [esp + 8]
jmp case.0x453369.92
mov eax, dword [esp]
mov word [eax + 0x20b6], 0x101
jmp 0x4559f9
cmp eax, 3
jl case.0x453369.92
mov eax, dword [esp]
cmp byte [eax + 0x10f0], 0
jne case.0x453369.92
mov edx, dword [esp]
mov byte [edx + 0x209c], 1
mov eax, dword [edx + 0x18c]
mov ecx, dword [edx + 0x190]
mov dword [edx + 0x20a0], eax
mov dword [edx + 0x20a4], ecx
cmp byte [edx + 0x1071], 0
jne case.0x453369.92
jmp 0x454e77
mov eax, dword [esp]
mov word [eax + 0x20b4], 0x101
jmp 0x4559f9
mov eax, dword [esp]
mov word [eax + 0x20b4], 1
jmp 0x4559f9
mov eax, dword [esp]
mov byte [eax + 0x20be], 1
jmp 0x4559f9
cmp eax, 3
jl case.0x453369.92
mov eax, dword [esp]
cmp byte [eax + 0x10f0], 0
jne case.0x453369.92
mov eax, dword [esp]
mov byte [eax + 0x20a8], 1
mov eax, dword [eax + 0x190]
test eax, eax
jne 0x4559a1
mov eax, dword [esp]
mov eax, dword [eax + 0x10d4]
mov ecx, dword [esp]
mov dword [ecx + 0x20ac], eax
mov eax, dword [ecx + 0x18c]
test eax, eax
jne 0x4559bd
mov eax, dword [esp]
mov eax, dword [eax + 0x10d0]
mov ecx, dword [esp]
mov dword [ecx + 0x20b0], eax
cmp byte [ecx + 0x1071], 0
jne case.0x453369.92
jmp 0x454e77
cmp eax, 2
jl case.0x453369.92
mov eax, dword [esp]
mov byte [eax + 0x20b8], 1
cmp dword [eax + 0x18c], 0
setne byte [eax + 0x20b9]
cmp byte [eax + 0x1071], 0
jne case.0x453369.92
jmp 0x454e77
mov eax, dword [esp]
mov eax, dword [eax + 0x1058]
test eax, eax
je case.0x453369.92
mov ecx, dword [esp]
cmp byte [ecx + 0x1130], 0
mov ecx, str.e_1t
mov edx, str.e_2t
cmove edx, ecx
push 0
push 4
push edx
jmp 0x455790
mov eax, dword [esp]
cmp dword [eax + 0x1058], 0
je case.0x453369.92
lea edi, [esp + 0x88]
mov esi, dword [esp]
push dword [esi + 0x2090]
push dword [esi + 0x208c]
push str.e_3__u__ut
jmp 0x455ac2
mov eax, dword [esp]
cmp dword [eax + 0x1058], 0
je case.0x453369.92
lea edi, [esp + 0x88]
mov esi, dword [esp]
push dword [esi + 0x2094]
push dword [esi + 0x2098]
push str.e_4__u__ut
jmp 0x455ac2
mov eax, dword [esp]
cmp dword [eax + 0x1058], 0
je case.0x453369.92
lea edi, [esp + 0x88]
mov esi, dword [esp]
push dword [esi + 0x12c]
push dword [esi + 0x128]
push str.e_8__d__dt
push edi
call fcn.00403e60
add esp, 0x10
jmp 0x4553e1
mov eax, dword [esp]
mov ebp, dword [eax + 0x1058]
test ebp, ebp
je case.0x453369.92
mov eax, dword [esp]
mov eax, dword [eax + 0x10f8]
test eax, eax
je case.0x453369.92
mov esi, ebx
mov edi, 0x4b6a76
cmp eax, 2
jne 0x455b07
mov eax, dword [esp]
mov edi, dword [eax + 0x112c]
push edi
call fcn.00485930
add esp, 4
mov dword [esp + 0x10], eax
xor ebx, ebx
push ebx
push 3
push 0x4b0bcb
jmp 0x455b6e
mov eax, dword [esp]
mov ebp, dword [eax + 0x1058]
test ebp, ebp
je case.0x453369.92
mov eax, dword [esp]
mov eax, dword [eax + 0x10f8]
test eax, eax
je case.0x453369.92
mov esi, ebx
mov edi, 0x4b6a76
cmp eax, 2
jne 0x455b57
mov eax, dword [esp]
mov edi, dword [eax + 0x1128]
push edi
call fcn.00485930
add esp, 4
mov dword [esp + 0x10], eax
xor ebx, ebx
push ebx
push 3
push 0x4ac71c
push ebp
call fcn.0040f1b9
add esp, 0x10
push ebx
push dword [esp + 0x14]
push edi
mov edi, dword [esp + 0xc]
push dword [edi + 0x1058]
call fcn.0040f1b9
add esp, 0x10
push ebx
push 2
push 0x4b0150
push dword [edi + 0x1058]
call fcn.0040f1b9
add esp, 0x10
mov ebx, esi
jmp case.0x453369.92
mov ecx, esi
call fcn.00457d82
cmp byte [esi + 0x10e1], 0
je 0x455bcf
mov eax, dword [esi + 0x1060]
test eax, eax
je 0x455bcf
push eax
call fcn.0040f974
add esp, 4
mov ecx, dword [esp + 0x1d8]
xor ecx, esp
call fcn.00475893
add esp, 0x1dc
pop esi
pop edi
pop ebx
pop ebp
ret