Function at 0x44d79a
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, 0x1e4
mov eax, dword [0x4b507c]
lea edi, [ecx + 0xec]
lea ebp, [ecx + 0xe18]
mov esi, ecx
lea ebx, [ecx + 0x80]
xor eax, esp
xor edx, edx
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x2c], edi
lea edi, [ecx + 0xd8]
mov dword [esp], ebp
lea ebp, [ecx + 0xe28]
dec edx
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 4], ebx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x40], edi
lea edi, [ecx + 0x28]
mov dword [esp + 0x24], ebp
lea ebp, [ecx + 0x6c]
mov dword [esp + 0x3c], edi
lea edi, [ecx + 0x40]
mov dword [esp + 0x18], ebp
lea ebp, [ecx + 0x58]
mov dword [esp + 0x10], edi
lea edi, [ecx + 0xa12]
mov dword [esp + 8], ebp
mov dword [esp + 0x28], edi
mov ebp, dword [esp + 0x34]
test ebp, ebp
jne 0x44d897
cmp edx, 0xffffffff
jne 0x44d897
push ebx
call fcn.00456012
add esp, 4
test eax, eax
je 0x450990
push ebx
call fcn.00456169
add esp, 4
mov ecx, 0x100
mov ebp, edx
cmp edx, ecx
cmovae ebp, ecx
push ebp
push eax
lea edi, [esp + 0xe8]
push edi
call fcn.004716e0
add esp, 0xc
push ebp
push ebx
call fcn.004560d8
add esp, 8
test ebp, ebp
jne 0x44d8aa
push 0xce0
push str..._terminal.c
push str.nchars___0
call fcn.0047b3ef
add esp, 0xc
xor ebp, ebp
lea edi, [esp + 0xe0]
jmp 0x44d8aa
cmp edx, 0xffffffff
je 0x44d8a2
mov dword [esp + 0x4c], edx
jmp 0x44d8dd
mov edi, dword [esp + 0x30]
test ebp, ebp
je 0x44d840
movzx eax, byte [edi]
inc edi
dec ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x30], edi
mov dword [esp + 0x4c], eax
cmp dword [esi + 0x10e0], 2
jne 0x44d8dd
mov ecx, dword [esi + 0x105c]
test ecx, ecx
je 0x44d8dd
movzx eax, al
push 2
push eax
push ecx
call fcn.0040f368
add esp, 0xc
cmp byte [esi + 0xe4], 0
je 0x44d92d
push 1
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x34]
call fcn.0045602d
add esp, 0xc
cmp byte [esi + 0xe5], 0
je 0x44d92d
mov eax, dword [esp + 0x4c]
cmp eax, 0x5a
jle 0x44d98a
cmp eax, 0x5b
je 0x44d9af
cmp eax, 0x69
je 0x44d9ca
cmp eax, 0x9b
je 0x44d9b8
jmp 0x44d9ec
mov eax, dword [esp]
mov edx, dword [esp + 0x4c]
cmp dword [eax], 0
je 0x44d945
xor eax, eax
dec eax
mov dword [esp + 0x1c], eax
jmp 0x44da1d
movzx eax, dl
push eax
push dword [esp + 0x44]
push esi
call fcn.0044b4e0
add esp, 0xc
cmp eax, 0x8000003f
mov edx, 0xffffffff
je 0x44d822
mov edx, 0xd961
cmp eax, 0x8000002a
je 0x44da12
cmp eax, 0x80000021
jne 0x44da10
mov eax, dword [esp + 0x4c]
jmp 0x44da15
cmp eax, 0x1b
je 0x44d9fe
cmp eax, 0x34
jne 0x44d9ec
cmp dword [esi + 0xe8], 2
jne 0x44d9ec
xor edx, edx
mov dword [esi + 0xe8], 3
dec edx
jmp 0x44d822
cmp dword [esi + 0xe8], 1
jne 0x44d9ec
xor edx, edx
mov dword [esi + 0xe8], 2
dec edx
jmp 0x44d822
cmp dword [esi + 0xe8], 3
jne 0x44d9ec
mov ecx, esi
mov dword [esi + 0xe8], 4
call fcn.0044a69e
xor edx, edx
dec edx
jmp 0x44d822
xor edx, edx
mov dword [esi + 0xe8], 0
dec edx
jmp 0x44d822
xor edx, edx
mov dword [esi + 0xe8], 1
dec edx
jmp 0x44d822
mov edx, eax
xor eax, eax
dec eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x4c], edx
mov eax, edx
and eax, 0xffffffe0
cmp eax, 0x80
jne 0x44da43
mov eax, dword [esp]
cmp dword [eax], 4
jg 0x44da43
cmp byte [esi + 0x13e], 0
jne 0x44da43
test byte [esi], 0x10
jne 0x44db1f
cmp edx, 0x7f
jne 0x44da87
mov eax, dword [esp]
mov eax, dword [eax]
cmp eax, 4
jg 0x44daf9
test byte [esi + 1], 0x40
je 0x44daf9
mov edx, dword [esi + 0x98]
test edx, edx
je 0x44db38
cmp byte [esi + 0xae], 0
jne 0x44db3a
dec edx
mov dword [esi + 0x98], edx
jmp 0x44db3a
mov eax, dword [esp]
cmp edx, 0x1f
mov eax, dword [eax]
ja 0x44daf9
cmp eax, 4
jg 0x44daf9
add edx, 0xfffffffb
cmp edx, 0x16
ja case.0x44e679.92
jmp dword [edx*4 + 0x4958a0]
test byte [esi], 1
je 0x44e5d1
cmp dword [esi + 0x1054], 0
je case.0x44e679.92
mov ecx, esi
xor edx, edx
push dword [esi + 0x10a8]
push dword [esi + 0x10a4]
call fcn.00450fc0
add esp, 8
mov edi, eax
push 0
push dword [eax + 8]
push dword [eax]
push dword [esi + 0x1054]
call fcn.0040e721
add esp, 0x10
push edi
call fcn.00455c30
jmp 0x44db9f
cmp eax, 0xd
ja case.0x44e679.92
jmp dword [eax*4 + 0x4958fc]
mov ecx, esi
call fcn.00453251
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x1064], eax
jmp case.0x44e679.92
cmp edx, 0x9a
jne 0x44def3
mov dword [esp + 0x4c], 0
jmp case.0x44e679.92
xor edx, edx
xor eax, eax
mov byte [esi + 0xae], al
cmp byte [esi + 0x10e9], al
jne case.0x44e679.92
mov ecx, esi
push dword [esi + 0x94]
call fcn.00451ab9
add esp, 4
mov edx, dword [esi + 0x98]
mov ecx, esi
inc edx
push dword [esi + 0x94]
call fcn.00451ab9
add esp, 4
mov edx, dword [esi + 0x94]
mov edi, dword [esi + 0x98]
mov ecx, esi
push 1
push 0xd3f
call fcn.0044a8ca
add esp, 8
mov ecx, eax
mov edx, edi
push dword [esp + 0x18]
call fcn.00451b88
add esp, 4
jmp case.0x44e679.92
mov eax, dword [esp]
mov dword [eax], 0
lea eax, [edx - 0x30]
cmp eax, 9
ja 0x44df8d
mov ecx, dword [esi + 0x204]
cmp ecx, 0x20
jg 0x44dfb5
mov edi, dword [esi + ecx*4 + 0x180]
test edi, edi
jne 0x44dbee
mov dword [esi + ecx*4 + 0x180], 0
mov ecx, dword [esi + 0x204]
mov edi, dword [esi + ecx*4 + 0x180]
dec ecx
cmp edi, 0x19999999
mov ebx, 0xffffffff
ja 0x44dc16
add edi, edi
mov ebx, 0xffffffcf
lea edi, [edi + edi*4]
sub ebx, edx
mov edx, 0xffffffff
add eax, edi
cmp edi, ebx
cmova eax, edx
mov ebx, eax
mov dword [esi + ecx*4 + 0x184], ebx
mov ebx, dword [esp + 4]
jmp 0x44dfb5
lea eax, [edx - 0x30]
mov byte [esi + 0xa11], 0
cmp eax, 0x22
ja case.default.0x44dc39
jmp dword [eax*4 + 0x495a24]
mov eax, dword [esi + 0x204]
mov ecx, dword [esi + eax*4 + 0x180]
cmp ecx, 0x19999999
ja 0x44dc69
add ecx, ecx
mov edi, 0xffffffcf
lea ecx, [ecx + ecx*4]
sub edi, edx
cmp ecx, edi
jbe 0x44e5ed
mov dword [esi + eax*4 + 0x180], 0xffffffff
jmp case.0x44e679.92
lea eax, [edx - 0x30]
cmp eax, 9
ja case.0x44dc39.58
mov ecx, dword [esi + 0x184]
cmp ecx, 0x19999999
ja 0x44dca7
add ecx, ecx
mov edi, 0xffffffcf
lea ecx, [ecx + ecx*4]
sub edi, edx
cmp ecx, edi
jbe 0x44e6d1
mov dword [esi + 0x184], 0xffffffff
jmp case.0x44e679.92
mov eax, dword [esi + 0x20c]
mov ecx, 0xf
mov edi, 0x15
lea ebx, [edx - 0x30]
test eax, eax
cmove ecx, edi
cmp ebx, 0xa
jb 0x44e381
cmp edx, 0x41
jl 0x44e368
lea edi, [ecx + 0x37]
cmp edx, edi
jg 0x44e368
add edx, 0xffffffc9
jmp 0x44e37f
cmp edx, 0xc
jle 0x44e204
cmp edx, 0x9c
je 0x44e2c4
cmp edx, 0x1b
je 0x44e5df
cmp edx, 0xd
je 0x44e5d1
jmp 0x44e216
cmp edx, 0x5c
jne case.0x44db02.1
mov ecx, esi
call fcn.0045377c
jmp 0x44e402
mov dword [esi + 0xe18], 0
mov byte [esi + 0x142], 1
cmp byte [esi + 0x106d], 0
jne 0x44dd6f
mov byte [esi + 0x106d], 1
push esi
push 0x451f15
push 0x14
call fcn.004542e8
add esp, 0xc
mov dword [esi + 0x1070], eax
mov edx, dword [esp + 0x4c]
add edx, 0xffffffc4
cmp edx, 0x3b
ja case.0x44e679.92
jmp dword [edx*4 + 0x495934]
mov byte [esi + 0x13e], 0
mov al, byte [esi + 0x10c7]
mov byte [esi + 0xc9], al
mov ecx, esi
call fcn.0044a769
jmp case.0x44e679.92
mov dword [esi + 0xe18], 0xb
add edx, 0xffffffe0
mov ebp, 0
mov eax, dword [esi + 0x98]
mov edi, dword [esi + 0x12c]
mov ecx, dword [esi + 0x128]
test eax, eax
cmovs eax, ebp
cmp eax, edi
lea edi, [edi - 1]
cmovl edi, eax
test edx, edx
lea eax, [ecx - 1]
cmovs edx, ebp
mov dword [esi + 0x98], edi
cmp edx, ecx
cmovl eax, edx
mov dword [esi + 0x94], eax
jmp 0x44de2e
xor edi, edi
add edx, 0xffffffe0
mov dword [esi + 0xe18], edi
cmovs edx, edi
mov eax, dword [esi + 0x12c]
mov ecx, dword [esi + 0x94]
cmp edx, eax
lea eax, [eax - 1]
cmovl eax, edx
mov edx, dword [esi + 0x128]
test ecx, ecx
cmovs ecx, edi
mov dword [esi + 0x98], eax
cmp ecx, edx
lea edx, [edx - 1]
cmovl edx, ecx
mov dword [esi + 0x94], edx
mov byte [esi + 0xae], 0
jmp case.0x44e679.92
mov dword [esi + 0xe18], 0
mov ecx, 0xfffbfe00
and edx, 0xf
mov eax, dword [esi + 0x40]
and eax, ecx
mov ecx, dword [esp + 0x18]
or edx, eax
mov dword [esi + 0x40], edx
mov esi, dword [esp + 8]
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x10], eax
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
mov esi, dword [esp + 0x14]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
cmp byte [esi + 0xc6], 0
je case.0x44e679.92
and edx, 0x3fe0f
jmp 0x44dee5
mov dword [esi + 0xe18], 0
and edx, 0xf
mov ecx, 0xffdc01ff
mov eax, dword [esi + 0x40]
shl edx, 9
and eax, ecx
mov ecx, dword [esp + 0x18]
or edx, eax
mov dword [esi + 0x40], edx
mov esi, dword [esp + 8]
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x10], eax
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
mov esi, dword [esp + 0x14]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
cmp byte [esi + 0xc6], 0
je case.0x44e679.92
and edx, 0x1fff
mov dword [esi + 0x70], edx
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x78], eax
jmp case.0x44e679.92
and edx, 0x1f
mov dword [esi + 0xe18], 1
mov dword [esi + 0x208], 0
or edx, 0x40
mov dword [esp + 0x4c], edx
mov eax, edx
and eax, 0xfffffff0
cmp eax, 0x20
jne 0x44df37
cmp dword [esi + 0x208], 0
je 0x44e2b9
mov dword [esi + 0x208], 0xffffffff
jmp case.0x44e679.92
mov dword [esi + 0xe18], 0
mov eax, dword [esi + 0x208]
shl eax, 8
add eax, edx
cmp eax, 0x2337
jg 0x44e1aa
cmp eax, 0x59
jg 0x44e2da
lea ecx, [eax - 0x37]
cmp ecx, 7
jbe switch.0x0044e5fd
add eax, 0xffffffbc
cmp eax, 9
ja case.0x44e679.92
jmp dword [eax*4 + 0x495de0]
test byte [esi], 2
je 0x44eda5
jmp 0x44ed5d
cmp edx, 0x3b
jne 0x44e411
mov eax, dword [esi + 0x204]
cmp eax, 0x1f
jg 0x44dfb5
lea ecx, [eax + 1]
mov dword [esi + 0x204], ecx
mov dword [esi + eax*4 + 0x184], 0
mov eax, dword [esp]
mov dword [eax], 2
jmp case.0x44e679.92
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp byte [esi + 0x34], 0
mov ebp, dword [esp + 0x3c]
mov edi, eax
jne 0x44e874
xor eax, eax
push eax
push 8
push 1
call fcn.00410b50
add esp, 0xc
xor ecx, ecx
mov dword [eax + 4], edi
mov dword [eax], ecx
cmp dword [ebp], ecx
je 0x44e86a
mov ecx, dword [esi + 0x2c]
jmp 0x44e86c
mov eax, dword [esi + 0x98]
test eax, eax
je 0x44e510
cmp byte [esi + 0xae], 0
je 0x44e776
mov byte [esi + 0xae], 0
jmp 0x44e9ab
mov edx, dword [esi + 0x94]
mov eax, dword [esi + 0x98]
mov ecx, esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x20], edx
push 1
push 0xddd
call fcn.0044a8ca
add esp, 8
mov ebx, dword [esi + 0x98]
mov ebp, dword [esi + 0x12c]
lea edx, [ebp - 1]
inc ebx
mov ecx, ebx
cmp ebx, edx
mov dword [esi + 0x98], ebx
jge 0x44e077
mov edi, dword [esi + 0xe14]
lea ebx, [ecx + 1]
cmp byte [edi + ecx], 0
je 0x44e05c
test byte [eax], 3
je 0x44e54c
mov eax, ebp
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x20]
shr eax, 0x1f
add eax, ebp
sar eax, 1
cmp ecx, eax
jl 0x44e560
dec eax
mov dword [esi + 0x98], eax
mov ecx, eax
jmp 0x44e560
test byte [esi + 1], 0x10
jne 0x44e44a
test byte [esi], 2
je 0x44e5d1
mov eax, dword [esi + 0x94]
cmp eax, dword [esi + 0xa8]
jne 0x44e23c
mov edx, dword [esi + 0xa4]
xor edi, edi
mov ecx, esi
inc edi
push edi
push edi
push eax
call fcn.004517e6
add esp, 0xc
jmp 0x44e24e
xor eax, eax
mov dword [esi + 0x98], 0
mov byte [esi + 0xae], al
mov byte [esi + 0x142], 1
cmp byte [esi + 0x106d], al
jne 0x44e125
mov byte [esi + 0x106d], 1
push esi
push 0x451f15
push 0x14
call fcn.004542e8
add esp, 0xc
mov dword [esi + 0x1070], eax
cmp byte [esi + 0x10d4], 0
je 0x44e295
mov eax, dword [esi + 0x94]
cmp eax, dword [esi + 0xa8]
jne 0x44e6b6
mov edx, dword [esi + 0xa4]
xor edi, edi
mov ecx, esi
inc edi
push edi
push edi
push eax
call fcn.004517e6
add esp, 0xc
jmp 0x44e295
test byte [esi], 2
je 0x44e5d1
mov dword [esi + 0xb0], 1
jmp case.0x44e679.92
test byte [esi], 2
je 0x44e5d1
mov dword [esi + 0xb0], 0
jmp case.0x44e679.92
cmp byte [esi + 0x13e], 0
je 0x44e5c8
mov eax, dword [esp]
mov dword [eax], 9
jmp case.0x44e679.92
cmp eax, 0x2841
jg 0x44e4bf
cmp eax, 0x2546
jg 0x44e782
cmp eax, 0x2338
je 0x44eb45
cmp eax, 0x2538
je 0x44e847
cmp eax, 0x2540
jne case.0x44e679.92
test byte [esi + 1], 0x40
je 0x44eda5
cmp byte [esi + 0x10eb], 0
jne case.0x44e679.92
mov byte [esi + 0xd5], 0
jmp case.0x44e679.92
cmp edx, 7
je 0x44e2c4
cmp edx, 0xa
je 0x44e5d1
mov eax, dword [esi + 0x20c]
cmp eax, 0x7ff
jg case.0x44e679.92
lea ecx, [eax + 1]
mov dword [esi + 0x20c], ecx
mov byte [esi + eax + 0x210], dl
jmp case.0x44e679.92
mov ecx, dword [esi + 0x128]
dec ecx
cmp eax, ecx
jge 0x44e24e
inc eax
mov dword [esi + 0x94], eax
cmp byte [esi + 0x10dc], 0
je 0x44e261
mov dword [esi + 0x98], 0
xor eax, eax
mov byte [esi + 0xae], al
mov byte [esi + 0x142], 1
cmp byte [esi + 0x106d], al
jne 0x44e295
mov byte [esi + 0x106d], 1
push esi
push 0x451f15
push 0x14
call fcn.004542e8
add esp, 0xc
mov dword [esi + 0x1070], eax
mov eax, dword [esi + 0x105c]
test eax, eax
je case.0x44e679.92
movzx ecx, byte [esp + 0x4c]
push 1
push ecx
push eax
call fcn.0040f368
add esp, 0xc
jmp case.0x44e679.92
mov dword [esi + 0x208], edx
jmp case.0x44e679.92
mov ecx, esi
call fcn.0045377c
mov dword [esi + 0xe18], 0
jmp case.0x44e679.92
lea ecx, [eax - 0x5a]
cmp ecx, 9
jbe switch.0x0044e679
lea ecx, [eax - 0x2333]
cmp ecx, 4
jae case.0x44e679.92
test byte [esi], 2
je 0x44eda5
cmp ecx, 2
mov ecx, 1
mov ebp, ecx
ja 0x44e312
movzx ebp, word [eax + eax + 0x4911ca]
mov edx, dword [esi + 0x94]
mov ecx, esi
push 1
push 0xe95
call fcn.0044a8ca
add esp, 8
mov edi, eax
mov eax, dword [esi + 0x12c]
cmp eax, dword [edi + 4]
je 0x44e343
mov ecx, esi
mov edx, edi
push eax
call fcn.00451c9b
add esp, 4
mov al, byte [edi + 0x18]
cmp al, byte [esi + 0x10a0]
je 0x44e360
mov ecx, esi
mov edx, edi
call fcn.00451c57
mov al, byte [esi + 0x10a0]
mov byte [edi + 0x18], al
mov word [edi], bp
jmp case.0x44e679.92
cmp edx, 0x61
jl 0x44e6de
add ecx, 0x57
cmp edx, ecx
jg 0x44e6de
add edx, 0xffffffa9
mov ebx, edx
lea ecx, [eax + 1]
mov dword [esi + 0x20c], ecx
mov byte [esi + eax + 0x210], bl
mov ebx, dword [esp + 4]
cmp dword [esi + 0x20c], 7
jl case.0x44e679.92
movsx eax, byte [esi + 0x215]
movsx ecx, byte [esi + 0x216]
movsx edx, byte [esi + 0x214]
mov ebx, dword [esi + 0x1058]
movsx edi, byte [esi + 0x212]
shl eax, 4
mov ebp, dword [ebx]
add ecx, eax
movsx eax, byte [esi + 0x213]
shl eax, 4
add edx, eax
movsx eax, byte [esi + 0x211]
shl eax, 4
add edi, eax
movsx eax, byte [esi + 0x210]
push ecx
push edx
push edi
push eax
push ebx
mov ebx, dword [esp + 0x18]
call dword [ebp + 0x58]
add esp, 0x14
push esi
call fcn.0044b7c0
add esp, 4
mov dword [esi + 0xe18], 0
jmp case.0x44e679.92
mov eax, dword [esi + 0x208]
cmp edx, 0x3f
ja 0x44e6f0
mov ecx, 1
cmove edx, ecx
cmp eax, ecx
mov ecx, 0
sbb ecx, ecx
not ecx
or ecx, edx
mov dword [esi + 0x208], ecx
mov dword [esi + 0xe18], 2
jmp case.0x44e679.92
mov ecx, dword [esi + 0x12c]
mov eax, dword [esi + 0x128]
mov edx, 0
test ecx, ecx
lea ecx, [ecx - 1]
cmovg ecx, edx
test eax, eax
lea eax, [eax - 1]
cmovg eax, edx
mov dword [esi + 0x98], ecx
mov ecx, esi
mov dword [esi + 0x94], eax
mov byte [esi + 0xae], dl
xor eax, eax
xor edx, edx
push 1
push eax
call fcn.0045155e
add esp, 8
xor eax, eax
cmp byte [esi + 0x10f9], al
je 0x44e49f
mov dword [esi + 0x10], 0
xor eax, eax
mov byte [esi + 0xae], al
mov byte [esi + 0x142], 1
cmp byte [esi + 0x106d], al
jne case.0x44e679.92
jmp 0x44e9bf
cmp eax, 0x2940
jg 0x44e7c8
cmp eax, 0x2842
je 0x44ec98
cmp eax, 0x2855
je 0x44ecbd
cmp eax, 0x2930
jne case.0x44e679.92
test byte [esi], 2
je 0x44eda5
cmp byte [esi + 0x10eb], 0
jne case.0x44e679.92
mov dword [esi + 0x158], 0xd900
jmp case.0x44e679.92
mov ecx, dword [esi + 0x94]
test ecx, ecx
je 0x44e9ab
cmp byte [esi + 0xad], 0
je 0x44e9ab
test ecx, ecx
jle 0x44e00e
mov eax, dword [esi + 0x12c]
dec ecx
dec eax
mov dword [esi + 0x98], eax
mov dword [esi + 0x94], ecx
jmp 0x44e9ab
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x20]
cmp ecx, ebp
jl 0x44e560
mov ecx, edx
mov dword [esi + 0x98], edx
mov eax, dword [esp + 0xc]
xor edx, edx
cmp dword [esi + 0xe34], eax
setg dl
xor eax, eax
cmp dword [esi + 0xe30], edi
setg al
cmove eax, edx
cmp al, 1
jne 0x44e9ab
xor edx, edx
cmp dword [esi + 0xe2c], ecx
mov edi, dword [esi + 0x94]
setl dl
xor eax, eax
cmp dword [esi + 0xe28], edi
setl al
cmove eax, edx
cmp al, 1
jne 0x44e9ab
mov eax, dword [esp + 0x24]
xor ecx, ecx
mov dword [esi + 0xe1c], ecx
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ecx
jmp 0x44e9ab
test byte [esi], 1
jne 0x44e82e
mov eax, dword [esp]
mov dword [eax], 0
jmp case.0x44e679.92
mov eax, dword [esp]
mov dword [eax], 8
jmp case.0x44e679.92
lea ecx, [edx + ecx - 0x30]
mov dword [esi + eax*4 + 0x180], ecx
jmp case.0x44e679.92
jmp dword [ecx*4 + 0x495dc0]
test byte [esi], 2
je 0x44eda5
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0x98]
mov dword [esi + 0xa0], ecx
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x48]
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x50], ecx
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0xb0]
mov dword [esi + 0xb4], eax
mov cl, byte [esi + 0xd5]
mov byte [esi + 0xbc], cl
mov cl, byte [esi + 0xae]
mov byte [esi + 0xbd], cl
mov eax, dword [esi + eax*4 + 0x154]
mov dword [esi + 0xb8], eax
mov eax, dword [esi + 0xcc]
mov dword [esi + 0xd0], eax
jmp case.0x44e679.92
jmp dword [ecx*4 + 0x495e08]
test byte [esi], 2
je 0x44eda5
mov edi, dword [esi + 0x1054]
test edi, edi
je case.0x44e679.92
mov ebp, dword [esp + 0x28]
push ebp
call fcn.0047e720
add esp, 4
push 0
push eax
push ebp
push edi
call fcn.0040e721
add esp, 0x10
jmp case.0x44e679.92
mov ecx, dword [esi + 0x128]
dec ecx
cmp eax, ecx
jge 0x44e295
inc eax
mov dword [esi + 0x94], eax
jmp 0x44e295
add eax, ecx
mov dword [esi + 0x184], eax
jmp case.0x44e679.92
mov eax, dword [esp]
mov dword [eax], 0
mov ebx, dword [esp + 4]
jmp case.0x44e679.92
mov ecx, eax
shl ecx, 8
add ecx, edx
cmp ecx, 0x168
jg 0x44eaf5
lea edx, [ecx - 0x40]
cmp edx, 0x38
ja case.default.0x44e70f
jmp dword [edx*4 + 0x495ab0]
test byte [esi + 1], 0x20
je 0x44eda5
mov ecx, dword [esi + 0x184]
mov edx, dword [esi + 0x12c]
cmp ecx, edx
cmova ecx, edx
xor eax, eax
mov dword [esi + 0x184], ecx
sub ecx, 1
cmovb ecx, eax
mov ebp, dword [esi + 0x94]
mov edi, dword [esi + 0x128]
test ecx, ecx
cmovs ecx, eax
cmp ecx, edx
lea edx, [edx - 1]
cmovl edx, ecx
test ebp, ebp
cmovs ebp, eax
mov dword [esi + 0x98], edx
cmp ebp, edi
lea edi, [edi - 1]
cmovl edi, ebp
mov dword [esi + 0x94], edi
jmp 0x44fa24
dec eax
mov dword [esi + 0x98], eax
jmp 0x44e9ab
cmp eax, 0x2547
je 0x44e847
cmp eax, 0x2830
je 0x44ece3
cmp eax, 0x2841
jne case.0x44e679.92
test byte [esi], 2
je 0x44eda5
cmp byte [esi + 0x10eb], 0
jne case.0x44e679.92
mov dword [esi + 0x154], 0xdb00
jmp case.0x44e679.92
cmp eax, 0x2941
je 0x44ed08
cmp eax, 0x2942
je 0x44ed2d
cmp eax, 0x2955
jne case.0x44e679.92
test byte [esi + 1], 0x40
je 0x44eda5
cmp byte [esi + 0x10eb], 0
jne case.0x44e679.92
mov dword [esi + 0x158], 0xda00
jmp case.0x44e679.92
cmp edx, 0x57
jne case.0x44dc39.58
mov dword [esi + 0xe18], 4
mov byte [esi + 0xa11], 1
jmp case.0x44e679.92
mov dword [esi + 0xe18], 1
mov dword [esi + 0x208], 0
jmp case.0x44e679.92
test byte [esi + 1], 0x40
je 0x44eda5
cmp byte [esi + 0x10eb], 0
jne case.0x44e679.92
mov byte [esi + 0xd5], 1
jmp case.0x44e679.92
mov ecx, ebp
mov dword [ecx], eax
mov dword [esi + 0x2c], eax
inc dword [esi + 0x30]
mov eax, dword [ebp]
test eax, eax
je 0x44e8ac
mov ecx, edi
sub ecx, dword [esi + 0x10c0]
cmp dword [eax + 4], ecx
jae 0x44e8ac
mov ecx, dword [eax]
mov dword [ebp], ecx
push eax
call fcn.00410bcd
add esp, 4
mov eax, dword [ebp]
test eax, eax
je 0x44e8a2
dec dword [esi + 0x30]
jmp 0x44e87b
mov dword [esi + 0x2c], 0
dec dword [esi + 0x30]
cmp byte [esi + 0x10b4], 0
je 0x44e8e1
cmp byte [esi + 0x34], 0
je 0x44e8d2
mov eax, edi
sub eax, dword [esi + 0x38]
cmp eax, dword [esi + 0x10bc]
jb 0x44e9a8
mov byte [esi + 0x34], 0
jmp 0x44e8e1
mov eax, dword [esi + 0x30]
cmp eax, dword [esi + 0x10b8]
jge 0x44e9a4
mov dword [esi + 0x38], edi
mov eax, dword [esi + 0x1058]
mov ecx, dword [eax]
push dword [esi + 0x10b0]
push eax
call dword [ecx + 0x24]
add esp, 8
cmp dword [esi + 0x10b0], 2
jne 0x44e9ab
mov byte [esi + 0x135], 1
push esi
push 0x451f15
push 0x64
call fcn.004542e8
add esp, 0xc
mov dword [esi + 0x138], eax
jmp 0x44e9ab
cmp dword [esi + 0x204], 1
jne case.0x44dc39.58
cmp dword [esi + 0x184], 4
jne case.0x44dc39.58
mov dword [esi + 0x204], 2
mov dword [esi + 0x188], 0
jmp case.0x44e679.92
cmp dword [esi + 0x184], 2
jne case.0x44dc39.58
mov dword [esi + 0x184], 1
jmp case.0x44e679.92
mov dword [esi + 0xe18], 7
mov dword [esi + 0x20c], 0
jmp case.0x44e679.92
mov dword [esi + 0xe18], 6
jmp 0x44e975
mov eax, dword [esi + 0x1058]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x5c]
add esp, 4
jmp 0x44e3f9
mov byte [esi + 0x34], 1
mov dword [esi + 0x38], edi
mov byte [esi + 0x142], 1
cmp byte [esi + 0x106d], 0
jne case.0x44e679.92
mov byte [esi + 0x106d], 1
push esi
push 0x451f15
push 0x14
call fcn.004542e8
add esp, 0xc
mov dword [esi + 0x1070], eax
jmp case.0x44e679.92
test byte [esi], 2
je 0x44eda5
mov ecx, esi
xor edx, edx
call fcn.0045390e
jmp 0x44eadc
test byte [esi], 2
je 0x44eda5
mov byte [esi + 0x13d], 1
jmp case.0x44e679.92
test byte [esi], 2
je 0x44eda5
mov byte [esi + 0x13d], 0
jmp case.0x44e679.92
xor eax, eax
mov dword [esi + 0xe18], 2
mov dword [esi + 0x204], 1
mov dword [esi + 0x184], eax
mov dword [esi + 0x208], eax
jmp case.0x44e679.92
test byte [esi + 1], 0x40
je 0x44eda5
mov dword [esi + 0xe18], 3
mov dword [esi + 0x184], 0
mov dword [esi + 0x204], 1
jmp case.0x44e679.92
test byte [esi], 2
je 0x44eda5
xor edx, edx
mov ecx, esi
inc edx
call fcn.0044987e
mov eax, dword [esi + 0x1054]
test eax, eax
je 0x44ea9c
push eax
call fcn.0040e6b5
add esp, 4
cmp byte [esi + 0xc5], 0
je 0x44eacc
cmp byte [esi + 0x10ec], 0
jne 0x44eac5
mov eax, dword [esi + 0x1058]
mov ecx, dword [eax]
push dword [esi + 0x128]
push 0x50
push eax
call dword [ecx + 0x34]
add esp, 0xc
mov byte [esi + 0xc5], 0
cmp byte [esi + 0x10f9], 0
je 0x44eadc
mov dword [esi + 0x10], 0
mov byte [esi + 0x142], 1
cmp byte [esi + 0x106d], 0
jne case.0x44e679.92
jmp 0x44f191
cmp ecx, 0x3d42
jle 0x44f1b3
lea eax, [ecx - 0x3d43]
cmp eax, 9
ja case.default.0x44eb10
jmp dword [eax*4 + 0x495b94]
test byte [esi + 1], 0x10
je 0x44e5d1
cmp dword [esi + 0x204], 2
jl case.0x44e679.92
mov eax, dword [esi + 0x184]
cmp eax, dword [esi + 0x188]
ja case.0x44dd7b.102
jmp case.0x44dd7b.101
test byte [esi], 2
je 0x44eda5
mov eax, dword [esi + 0x128]
test eax, eax
jle 0x44ebee
xor edx, edx
mov ecx, esi
mov dword [esp + 0x20], edx
push 1
push 0xe6b
call fcn.0044a8ca
add esp, 8
mov ecx, eax
mov eax, dword [esi + 0x12c]
mov dword [esp + 0xc], ecx
cmp eax, dword [ecx + 4]
je 0x44eb9d
mov edx, dword [esp + 0xc]
mov ecx, esi
push eax
call fcn.00451c9b
mov ecx, dword [esp + 0x10]
add esp, 4
mov eax, dword [esi + 0x12c]
mov ebp, dword [esp + 8]
mov esi, dword [esp + 0x14]
test eax, eax
jle 0x44ebd2
xor ebx, ebx
xor edi, edi
mov edx, edi
push ebp
call fcn.00451b88
mov ecx, dword [esp + 0x10]
add esp, 4
mov eax, dword [ecx + 0x14]
inc edi
mov dword [eax + ebx], 0x45
add ebx, 0x14
cmp edi, dword [esi + 0x12c]
jl 0x44ebad
mov edx, dword [esp + 0x20]
mov word [ecx], 0
mov ebx, dword [esp + 4]
mov eax, dword [esi + 0x128]
inc edx
cmp edx, eax
jl 0x44eb5e
cmp byte [esi + 0x10f9], 0
je 0x44ebfe
mov dword [esi + 0x10], 0
mov byte [esi + 0x142], 1
cmp byte [esi + 0x106d], 0
jne 0x44ec31
mov byte [esi + 0x106d], 1
push esi
push 0x451f15
push 0x14
call fcn.004542e8
add esp, 0xc
mov dword [esi + 0x1070], eax
mov eax, dword [esi + 0x128]
xor edi, edi
xor edx, edx
cmp dword [esi + 0xe34], edi
setg dl
xor ecx, ecx
cmp dword [esi + 0xe30], edi
setg cl
cmove ecx, edx
cmp cl, 1
jne case.0x44e679.92
xor ecx, ecx
cmp dword [esi + 0xe2c], 0
sets cl
xor edx, edx
cmp dword [esi + 0xe28], eax
setl dl
cmovne ecx, edx
cmp cl, 1
jne case.0x44e679.92
xor ecx, ecx
mov dword [esi + 0xe1c], ecx
mov eax, dword [esp + 0x24]
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ecx
mov edx, dword [esp + 0x1c]
jmp 0x44d822
test byte [esi], 2
je 0x44eda5
cmp byte [esi + 0x10eb], 0
jne case.0x44e679.92
mov dword [esi + 0x154], 0xd800
jmp case.0x44e679.92
test byte [esi + 1], 0x40
je 0x44eda5
cmp byte [esi + 0x10eb], 0
jne case.0x44e679.92
mov dword [esi + 0x154], 0xda00
jmp case.0x44e679.92
test byte [esi], 2
je 0x44eda5
cmp byte [esi + 0x10eb], 0
jne case.0x44e679.92
mov dword [esi + 0x154], 0xd900
jmp case.0x44e679.92
test byte [esi], 2
je 0x44eda5
cmp byte [esi + 0x10eb], 0
jne case.0x44e679.92
mov dword [esi + 0x158], 0xdb00
jmp case.0x44e679.92
test byte [esi], 2
je 0x44eda5
cmp byte [esi + 0x10eb], 0
jne case.0x44e679.92
mov dword [esi + 0x158], 0xd800
jmp case.0x44e679.92
test byte [esi], 2
je 0x44eda5
mov dword [esi + 0x98], 0
mov eax, dword [esi + 0x94]
cmp eax, dword [esi + 0xa8]
jne 0x44f13c
mov edx, dword [esi + 0xa4]
xor edi, edi
mov ecx, esi
inc edi
push edi
push edi
push eax
jmp 0x44f16e
test byte [esi], 2
je 0x44eda5
mov eax, dword [esi + 0xe14]
mov ecx, dword [esi + 0x98]
mov byte [eax + ecx], 1
jmp case.0x44e679.92
test byte [esi], 2
jne 0x44f150
mov eax, dword [esp]
mov dword [eax], 0
jmp case.0x44e679.92
mov byte [esi + 0x13d], 1
jmp case.0x44e679.92
mov byte [esi + 0x13d], 0
jmp case.0x44e679.92
mov eax, dword [esi + 0x94]
mov edx, dword [esi + 0x98]
dec eax
jmp 0x44ede7
mov eax, dword [esi + 0x94]
mov edx, dword [esi + 0x98]
inc eax
mov ecx, esi
push 1
push eax
jmp 0x44ee08
mov edx, dword [esi + 0x98]
inc edx
jmp 0x44edfe
mov edx, dword [esi + 0x98]
dec edx
mov ecx, esi
push 1
push dword [esi + 0x94]
call fcn.004531c6
jmp 0x44f05a
mov ecx, dword [esi + 0x12c]
mov eax, dword [esi + 0x128]
xor ebx, ebx
test ecx, ecx
lea ecx, [ecx - 1]
cmovg ecx, ebx
test eax, eax
lea eax, [eax - 1]
cmovg eax, ebx
mov dword [esi + 0x98], ecx
mov ecx, esi
xor edx, edx
mov dword [esi + 0x94], eax
mov byte [esi + 0xae], bl
push 1
push ebx
call fcn.0045155e
add esp, 8
cmp byte [esi + 0x10f9], bl
mov ebx, dword [esp + 4]
jne 0x44f025
jmp case.0x44e679.92
mov dword [esi + 0xb0], 0
mov dword [esi + 0x154], 0xd900
jmp case.0x44e679.92
mov dword [esi + 0xb0], 0
mov dword [esi + 0x154], 0xd800
jmp case.0x44e679.92
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 + 0x98], ecx
jmp 0x44dde5
mov eax, dword [esi + 0x94]
test eax, eax
je 0x44f22c
jle 0x44de2e
dec eax
jmp 0x44dde5
mov ecx, esi
xor edx, edx
push 1
push 0
jmp 0x44f014
xor edx, edx
mov ecx, esi
inc edx
push 1
push 0
jmp 0x44f055
mov edx, dword [esi + 0x94]
mov eax, dword [esi + 0xa8]
cmp edx, eax
jg case.0x44e679.92
mov ecx, esi
push 0
push 0xffffffffffffffff
jmp 0x44ef2d
mov edx, dword [esi + 0x94]
mov eax, dword [esi + 0xa8]
cmp edx, eax
jg case.0x44e679.92
xor edi, edi
mov ecx, esi
inc edi
push edi
push edi
push eax
call fcn.004517e6
jmp 0x44e2b1
xor eax, eax
mov edx, dword [esp + 0x18]
mov byte [esi + 0xd4], al
mov dword [esi + 0x40], 0x20500
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], eax
mov esi, dword [esp + 8]
mov ecx, dword [esi + 0x10]
mov dword [edx + 0x10], ecx
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
mov esi, dword [esp + 0x14]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
cmp byte [esi + 0xc6], al
je case.0x44e679.92
mov dword [esi + 0x70], 0x20500
mov dword [esi + 0x78], 0
jmp case.0x44e679.92
mov eax, dword [esp + 0x10]
or byte [eax + 2], 8
jmp case.0x44e679.92
mov byte [esi + 0xd4], 0
and byte [esi + 0x42], 0xfb
jmp case.0x44e679.92
mov byte [esi + 0xd4], 1
or byte [esi + 0x42], 4
jmp case.0x44e679.92
mov eax, dword [esp + 0x10]
and byte [eax + 2], 0xf7
jmp case.0x44e679.92
mov eax, dword [esp]
mov dword [eax], 0xa
jmp case.0x44e679.92
mov eax, dword [esi + 0x1054]
test eax, eax
je case.0x44e679.92
push 0
push 3
push 0x4a5963
push eax
call fcn.0040e721
add esp, 0x10
jmp case.0x44e679.92
mov eax, dword [esp]
mov dword [eax], 0xc
jmp case.0x44e679.92
mov eax, dword [esp]
mov dword [eax], 0xd
jmp case.0x44e679.92
mov ecx, esi
xor edx, edx
push 0
push 1
call fcn.0045155e
add esp, 8
cmp byte [esi + 0x10f9], 0
je case.0x44e679.92
mov dword [esi + 0x10], 0
jmp case.0x44e679.92
xor edx, edx
mov ecx, esi
inc edx
push edx
push edx
call fcn.0045155e
add esp, 8
mov dword [esi + 0x98], 0
jmp 0x44de2e
xor edx, edx
mov ecx, esi
inc edx
push 0
push 1
call fcn.0045155e
add esp, 8
cmp dword [esi + 0xe1c], 0
mov edx, dword [esp + 0x1c]
je 0x44d822
mov ecx, dword [esi + 0x98]
mov edi, dword [esi + 0x12c]
xor eax, eax
mov ebp, dword [esi + 0x94]
cmp edi, ecx
sete byte [esp + 0xc]
xor edx, edx
cmp dword [esi + 0xe34], ecx
setg dl
xor ebx, ebx
cmp dword [esi + 0xe30], ebp
setg bl
cmove ebx, edx
mov edx, dword [esp + 0x1c]
cmp bl, 1
mov ebx, dword [esp + 4]
jne 0x44d822
mov dl, byte [esp + 0xc]
mov al, dl
lea edx, [ecx + 1]
add eax, ebp
cmp edi, ecx
mov ecx, 0
cmove edx, ecx
xor ecx, ecx
cmp dword [esi + 0xe2c], edx
setl cl
xor edx, edx
cmp dword [esi + 0xe28], eax
setl dl
cmovne ecx, edx
mov edx, dword [esp + 0x1c]
cmp cl, 1
jne 0x44d822
mov eax, dword [esp + 0x24]
xor ecx, ecx
mov dword [esi + 0xe1c], ecx
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ecx
jmp 0x44d822
mov eax, dword [esp + 0x10]
or byte [eax + 2], 0x10
jmp case.0x44e679.92
mov eax, dword [esp + 0x10]
and byte [eax + 2], 0xef
jmp case.0x44e679.92
mov byte [esi + 0xad], 1
jmp case.0x44e679.92
mov byte [esi + 0xad], 0
jmp case.0x44e679.92
mov ecx, dword [esi + 0x128]
dec ecx
cmp eax, ecx
jge 0x44f176
inc eax
mov dword [esi + 0x94], eax
jmp 0x44f176
mov edx, dword [esi + 0x94]
cmp edx, dword [esi + 0xa4]
jne 0x44f249
mov ecx, esi
push 1
push 0xffffffffffffffff
push dword [esi + 0xa8]
call fcn.004517e6
add esp, 0xc
xor eax, eax
mov byte [esi + 0xae], al
mov byte [esi + 0x142], 1
cmp byte [esi + 0x106d], al
jne case.0x44e679.92
mov byte [esi + 0x106d], 1
push esi
push 0x451f15
push 0x14
call fcn.004542e8
add esp, 0xc
mov dword [esi + 0x1070], eax
jmp case.0x44e679.92
cmp ecx, 0x226f
jle 0x44f29b
cmp ecx, 0x2270
je 0x44f63a
cmp ecx, 0x247c
je 0x44f669
cmp ecx, 0x2a7c
jne case.0x44e679.92
test byte [esi], 0x40
je 0x44e5d1
cmp dword [esi + 0x204], 1
jne case.0x44e679.92
mov eax, dword [esi + 0x184]
test eax, eax
je case.0x44e679.92
cmp byte [esi + 0x10ec], 0
jne 0x44ec78
mov ecx, dword [esi + 0x1058]
mov edx, dword [ecx]
push eax
push dword [esi + 0x12c]
push ecx
call dword [edx + 0x34]
jmp 0x44f6b1
mov eax, dword [esi + 0x128]
mov ecx, esi
xor edx, edx
dec eax
push 1
push 0xffffffffffffffff
push eax
call fcn.004517e6
add esp, 0xc
jmp 0x44de2e
test edx, edx
jle 0x44f176
dec edx
mov dword [esi + 0x94], edx
jmp 0x44f176
cmp ecx, 0x3d63
je 0x44f6b9
cmp ecx, 0x3e63
jne case.0x44e679.92
test byte [esi + 1], 0x40
je 0x44eda5
mov eax, dword [esi + 0x1054]
test eax, eax
je case.0x44e679.92
push 0
push 0xb
push str.e__0_136_0c
jmp 0x450581
cmp ecx, 0x169
je case.0x44e70f.105
cmp ecx, 0x16c
jne case.0x44e679.92
test byte [esi], 2
je 0x44eda5
cmp dword [esi + 0x204], 0
jle case.0x44e679.92
mov edx, dword [esi + 0x184]
mov ecx, esi
push 0
push eax
call fcn.00453dc5
add esp, 8
cmp dword [esi + 0x204], 2
jl case.0x44e679.92
mov edi, 0x62
mov edx, dword [esi + edi*4]
mov ecx, esi
push 0
push dword [esi + 0x208]
call fcn.00453dc5
add esp, 8
lea eax, [edi + 1]
add edi, 0xffffffa0
cmp edi, dword [esi + 0x204]
mov edi, eax
jl 0x44f2ea
jmp case.0x44e679.92
test byte [esi], 2
je 0x44eda5
cmp dword [esi + 0x204], 1
jne case.0x44e679.92
mov eax, dword [esi + 0x184]
cmp eax, 5
jne 0x4505ef
push 0x85
push dword [esi + 0x1068]
call fcn.004031c6
add esp, 8
cmp byte [eax], 0
je 0x4505e9
mov edi, eax
mov byte [esi + 0xe4], 1
xor eax, eax
cmp dword [esi + 0x208], eax
sete byte [esi + 0xe5]
mov dword [esi + 0xe8], eax
push dword [esp + 0x2c]
call fcn.00455fe1
add esp, 4
push edi
call fcn.0046a137
add esp, 4
mov dword [esi + 0x100], eax
jmp case.0x44e679.92
cmp dword [esi + 0x204], 1
jg 0x44f3a6
mov dword [esi + 0x188], 0
mov eax, dword [esi + 0x184]
mov ecx, dword [esi + 0x128]
mov edi, dword [esi + 0x12c]
mov ebx, 0
cmp eax, ecx
cmova eax, ecx
mov dword [esi + 0x184], eax
mov edx, dword [esi + 0x188]
cmp edx, edi
cmova edx, edi
xor ecx, ecx
mov dword [esi + 0x188], edx
movzx edi, byte [esi + 0xac]
test edi, edi
lea edi, [edi + edi]
je 0x44f3ef
mov ebx, dword [esi + 0xa4]
xor ebp, ebp
inc ebp
sub eax, ebp
cmovb eax, ecx
add eax, ebx
sub edx, ebp
cmovb edx, ecx
mov ecx, esi
push edi
push eax
call fcn.004531c6
add esp, 8
mov byte [esi + 0x142], 1
mov ebx, dword [esp + 4]
jmp 0x44fe29
cmp ecx, 0x168
jne case.0x44e679.92
test byte [esi], 2
je 0x44eda5
cmp dword [esi + 0x204], 0
jle case.0x44e679.92
mov edx, dword [esi + 0x184]
mov ecx, esi
push 1
push eax
call fcn.00453dc5
add esp, 8
cmp dword [esi + 0x204], 2
jl case.0x44e679.92
mov edi, 0x62
mov edx, dword [esi + edi*4]
mov ecx, esi
push 1
push dword [esi + 0x208]
call fcn.00453dc5
add esp, 8
lea eax, [edi + 1]
add edi, 0xffffffa0
cmp edi, dword [esi + 0x204]
mov edi, eax
jl 0x44f461
jmp case.0x44e679.92
test byte [esi + 1], 0x10
je 0x44e5d1
mov ecx, esi
mov byte [esi + 0xc9], 0
call fcn.0044a769
cmp dword [esi + 0x184], 0
mov eax, dword [esi + 0x40]
je 0x450568
or eax, 0x200000
jmp 0x45056d
test byte [esi + 1], 0x10
je 0x44e5d1
cmp dword [esi + 0x184], 0
setne byte [esi + 0xc9]
jmp 0x44dd95
test byte [esi + 1], 0x10
je 0x44e5d1
mov ecx, dword [esi + 0x184]
cmp ecx, 0xf
ja case.0x44e679.92
mov eax, ecx
and ecx, 8
mov edi, 0xfffffe00
and eax, 7
movsx eax, byte [eax + 0x4955fc]
or ecx, eax
mov eax, dword [esi + 0x40]
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 + 8]
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + 0x10]
mov dword [edx + 0x10], ecx
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
mov esi, dword [esp + 0x14]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
cmp byte [esi + 0xc6], 0
je case.0x44e679.92
and eax, 0x3ffff
jmp 0x44f632
test byte [esi + 1], 0x10
je 0x44e5d1
mov ecx, dword [esi + 0x184]
cmp ecx, 0xf
ja case.0x44e679.92
mov eax, ecx
and ecx, 8
mov edi, 0xfffc01ff
and eax, 7
movsx eax, byte [eax + 0x4955fc]
or ecx, eax
mov eax, dword [esi + 0x40]
shl ecx, 9
and eax, edi
or eax, ecx
mov dword [esi + 0x40], eax
mov dword [esi + 0x4c], 0
mov edx, dword [esi + 0x3c]
and edx, edi
or edx, ecx
mov dword [esi + 0x3c], edx
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + 0x10]
mov dword [edx + 0x10], ecx
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
mov esi, dword [esp + 0x14]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
cmp byte [esi + 0xc6], 0
je case.0x44e679.92
and eax, 0x3ffff
mov dword [esi + 0x70], eax
jmp 0x44ef84
test byte [esi + 1], 0x10
je 0x44e5d1
cmp dword [esi + 0x184], 0
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x18]
sete byte [esi + 0xc6]
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
jne case.0x44e679.92
mov eax, dword [esi + 0x40]
mov ecx, 0x3ffff
and eax, ecx
mov dword [esi + 0x70], eax
jmp 0x44dee8
mov eax, dword [esi + 0x184]
cmp eax, 0x29
jle 0x4504e3
cmp eax, 0x3c
jg 0x450504
cmp eax, 0x2a
je 0x450587
cmp eax, 0x32
je 0x45062f
jmp 0x4505b0
test byte [esi + 1], 1
je 0x44e5d1
cmp dword [esi + 0x204], 1
jg case.0x44e679.92
cmp byte [esi + 0x10ec], 0
jne 0x44ec78
mov ecx, dword [esi + 0x184]
mov eax, dword [esi + 0x128]
test ecx, ecx
jne 0x44f6a3
mov ecx, dword [esi + 0x10d0]
mov edx, dword [esi + 0x1058]
mov edi, dword [edx]
push eax
push ecx
push edx
call dword [edi + 0x34]
add esp, 0xc
jmp 0x44ec78
test byte [esi + 1], 0x10
je 0x44e5d1
mov eax, dword [esi + 0x184]
cmp eax, 2
je 0x4505c3
cmp eax, 1
je 0x4505d6
test eax, eax
jne case.0x44e679.92
mov byte [esi + 0xc4], 0
jmp case.0x44e679.92
test byte [esi], 8
je 0x44eda5
mov eax, dword [esi + 0x12c]
mov ecx, dword [esi + 0x184]
cmp ecx, eax
cmova ecx, eax
xor edx, edx
inc edx
test ecx, ecx
mov dword [esi + 0x184], ecx
cmovne edx, ecx
mov ecx, esi
jmp 0x44f9d6
mov eax, dword [esi + 0x184]
mov ecx, dword [esi + 0x128]
cmp eax, ecx
cmova eax, ecx
xor ecx, ecx
mov dword [esi + 0x184], eax
inc ecx
test eax, eax
cmovne ecx, eax
mov eax, dword [esi + 0x94]
mov edx, dword [esi + 0x98]
sub eax, ecx
mov ecx, esi
push 1
jmp 0x44fddd
mov eax, dword [esi + 0x184]
mov ecx, dword [esi + 0x12c]
cmp eax, ecx
cmova eax, ecx
xor ecx, ecx
mov dword [esi + 0x184], eax
inc ecx
test eax, eax
mov edx, dword [esi + 0x98]
cmovne ecx, eax
sub edx, ecx
mov ecx, esi
push 1
push dword [esi + 0x94]
jmp 0x44fe1a
test byte [esi + 1], 0x20
je 0x44eda5
mov eax, dword [esi + 0x128]
mov ecx, dword [esi + 0x184]
cmp ecx, eax
mov dword [esp + 0xc], eax
cmova ecx, eax
xor eax, eax
mov dword [esi + 0x184], ecx
inc eax
test ecx, ecx
mov edi, dword [esi + 0x94]
mov ebp, dword [esi + 0x12c]
mov ebx, dword [esi + 0xa4]
cmovne eax, ecx
xor ecx, ecx
add eax, edi
test ebp, ebp
lea ebp, [ebp - 1]
cmovg ebp, ecx
cmp ebx, eax
mov edx, eax
cmovge edx, ebx
cmp edi, ebx
cmovl edx, eax
mov eax, dword [esi + 0xa8]
mov dword [esi + 0x98], ebp
mov ebx, edx
cmp edx, eax
cmovg ebx, eax
cmp edi, eax
mov eax, dword [esp + 0xc]
cmovg ebx, edx
jmp 0x44f874
test byte [esi + 1], 0x20
je 0x44eda5
mov eax, dword [esi + 0x128]
mov ecx, dword [esi + 0x184]
cmp ecx, eax
mov dword [esp + 0xc], eax
cmova ecx, eax
xor edx, edx
mov dword [esi + 0x184], ecx
inc edx
test ecx, ecx
mov eax, dword [esi + 0x94]
cmovne edx, ecx
mov ebx, dword [esi + 0xa4]
xor ecx, ecx
mov edi, eax
sub edi, edx
mov edx, dword [esi + 0x12c]
mov ebp, edi
test edx, edx
lea edx, [edx - 1]
cmovg edx, ecx
cmp ebx, edi
cmovge ebp, ebx
cmp eax, ebx
cmovl ebp, edi
mov edi, dword [esi + 0xa8]
mov dword [esi + 0x98], edx
mov ebx, ebp
cmp ebp, edi
cmovg ebx, edi
cmp eax, edi
mov eax, dword [esp + 0xc]
cmovg ebx, ebp
test ebx, ebx
cmovs ebx, ecx
cmp ebx, eax
lea eax, [eax - 1]
cmovl eax, ebx
mov ebx, dword [esp + 4]
mov dword [esi + 0x94], eax
mov byte [esi + 0xae], cl
mov byte [esi + 0x142], 1
cmp byte [esi + 0x106d], cl
jne case.0x44e679.92
jmp 0x44e9bf
mov eax, dword [esi + 0x184]
cmp eax, 3
jne 0x4504a9
cmp byte [esi + 0x10ee], 0
jne 0x4504ca
push esi
call fcn.0044a802
add esp, 4
jmp 0x4504ca
mov eax, dword [esi + 0x184]
xor edi, edi
mov ecx, esi
inc eax
cmp eax, 3
cmovbe edi, eax
mov eax, edi
and edi, 2
and eax, 1
shr edi, 1
xor edx, edx
inc edx
push eax
push edi
call fcn.0045155e
add esp, 8
mov al, 1
mov byte [esi + 0x142], al
jmp 0x44fe29
test byte [esi], 8
je 0x44eda5
mov ecx, dword [esi + 0x184]
mov eax, dword [esi + 0x128]
cmp ecx, eax
cmova ecx, eax
mov dword [esi + 0x184], ecx
mov edx, dword [esi + 0x94]
mov eax, dword [esi + 0xa8]
cmp edx, eax
jg 0x44fe22
mov edi, ecx
xor ebx, ebx
mov ebp, 0
neg edi
cmp ecx, 1
mov ecx, esi
sbb ebp, ebp
or ebp, edi
push ebx
mov ebx, dword [esp + 8]
push ebp
jmp 0x44f999
test byte [esi], 8
je 0x44eda5
mov ecx, dword [esi + 0x184]
mov eax, dword [esi + 0x128]
cmp ecx, eax
cmova ecx, eax
mov dword [esi + 0x184], ecx
mov edx, dword [esi + 0x94]
mov eax, dword [esi + 0xa8]
cmp edx, eax
jg 0x44fe22
xor edi, edi
inc edi
test ecx, ecx
cmovne edi, ecx
mov ecx, esi
push 1
push edi
push eax
call fcn.004517e6
add esp, 0xc
jmp 0x44fe22
test byte [esi], 8
je 0x44eda5
mov eax, dword [esi + 0x12c]
mov ecx, dword [esi + 0x184]
cmp ecx, eax
cmova ecx, eax
xor edx, edx
mov eax, ecx
mov dword [esi + 0x184], ecx
neg eax
cmp ecx, 1
mov ecx, esi
sbb edx, edx
or edx, eax
call fcn.00453a53
jmp 0x44fe22
mov ecx, dword [esi + 0x128]
mov eax, dword [esi + 0x184]
cmp eax, ecx
cmova eax, ecx
mov dword [esi + 0x184], eax
test byte [esi + 1], 0x10
je 0x44eda5
mov edx, dword [esi + 0xa4]
xor edi, edi
mov ecx, esi
inc edi
test eax, eax
cmovne edi, eax
push 1
push edi
push dword [esi + 0xa8]
call fcn.004517e6
add esp, 0xc
xor eax, eax
mov byte [esi + 0xae], al
mov byte [esi + 0x142], 1
cmp byte [esi + 0x106d], al
jne case.0x44e679.92
jmp 0x44e9bf
mov ecx, dword [esi + 0x128]
mov eax, dword [esi + 0x184]
cmp eax, ecx
cmova eax, ecx
mov dword [esi + 0x184], eax
test byte [esi + 1], 0x10
je 0x44e5d1
mov ecx, eax
xor ebx, ebx
mov edx, dword [esi + 0xa4]
neg ecx
xor edi, edi
inc edi
cmp eax, edi
mov eax, 0
sbb eax, eax
or eax, ecx
mov ecx, esi
push edi
push eax
push dword [esi + 0xa8]
call fcn.004517e6
add esp, 0xc
mov byte [esi + 0xae], bl
mov byte [esi + 0x142], 1
cmp byte [esi + 0x106d], bl
mov ebx, dword [esp + 4]
jne case.0x44e679.92
jmp 0x44e9bf
test byte [esi], 1
je 0x44e5d1
mov eax, dword [esi + 0x184]
mov ecx, dword [esi + 0x12c]
cmp eax, ecx
cmova eax, ecx
xor ecx, ecx
mov dword [esi + 0x184], eax
inc ecx
test eax, eax
mov ebp, dword [esi + 0x98]
mov edx, dword [esi + 0x94]
cmovne ecx, eax
mov dword [esp + 0xc], ecx
mov ecx, esi
push 1
push 0x11a3
call fcn.0044a8ca
add esp, 8
mov edi, eax
mov al, byte [eax + 0x18]
cmp al, byte [esi + 0x10a0]
je 0x44fb19
mov ecx, esi
mov edx, edi
call fcn.00451c57
mov al, byte [esi + 0x10a0]
mov byte [edi + 0x18], al
mov dword [esp + 0x38], edi
mov edx, dword [esi + 0x98]
mov edi, dword [esi + 0x12c]
mov ecx, dword [esp + 0xc]
mov eax, dword [esi + 0x94]
sub edi, edx
mov dword [esp + 0x20], edx
mov dword [esp + 0xc], eax
cmp ecx, edi
cmovle edi, ecx
mov ecx, esi
push eax
call fcn.00451ab9
add esp, 4
mov edx, dword [esi + 0x98]
mov ecx, esi
add edx, edi
push dword [esi + 0x94]
call fcn.00451ab9
add esp, 4
mov eax, dword [esi + 0xe34]
xor ecx, ecx
mov edx, dword [esi + 0xe30]
cmp eax, dword [esi + 0x98]
setg cl
xor eax, eax
cmp edx, dword [esi + 0x94]
setg al
cmove eax, ecx
cmp al, 1
jne 0x44fbcc
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov edx, dword [esp + 0xc]
add eax, edi
cmp dword [esi + 0xe2c], eax
setl cl
xor eax, eax
cmp dword [esi + 0xe28], edx
setl al
cmove eax, ecx
cmp al, 1
jne 0x44fbcc
mov ecx, dword [esp + 0x24]
xor eax, eax
mov dword [esi + 0xe1c], eax
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov dword [ecx + 0xc], eax
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
test edi, edi
je 0x44e9ab
mov dword [esp + 0xc], edi
mov edx, ebp
inc ebp
mov edi, ecx
mov dword [esp + 0x20], ebp
push eax
mov ebp, eax
call fcn.00451b88
mov ecx, edi
mov eax, ebp
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x10]
add esp, 4
dec edi
jne 0x44fbdc
jmp 0x44e9ab
test byte [esi + 1], 0x40
je 0x44e5d1
mov ecx, dword [esi + 0x184]
mov eax, dword [esi + 0x12c]
cmp ecx, eax
cmova ecx, eax
xor edi, edi
mov dword [esi + 0x184], ecx
inc edi
test ecx, ecx
mov edx, dword [esi + 0x98]
mov eax, dword [esi + 0x94]
cmovne edi, ecx
test edi, edi
mov ecx, edx
jle 0x44fc85
mov ecx, edx
test ecx, ecx
jle 0x44fc85
lea ebx, [ecx - 1]
cmp ecx, 1
mov ecx, 0
mov dword [esi + 0x98], ebx
je 0x44fc7d
mov ebp, dword [esi + 0xe14]
cmp byte [ebp + ebx], 0
jne 0x44fc7b
lea ecx, [ebx - 1]
cmp ebx, 2
mov ebx, ecx
mov dword [esi + 0x98], ecx
jge 0x44fc62
jmp 0x44fc7d
mov ecx, ebx
cmp edi, 1
lea edi, [edi - 1]
jg 0x44fc45
xor ebx, ebx
cmp dword [esi + 0xe34], edx
setg bl
xor edx, edx
cmp dword [esi + 0xe30], eax
setg dl
cmove edx, ebx
mov ebx, dword [esp + 4]
cmp dl, 1
jne case.0x44e679.92
xor edx, edx
cmp dword [esi + 0xe2c], ecx
setl dl
xor ecx, ecx
cmp dword [esi + 0xe28], eax
setl cl
cmove ecx, edx
cmp cl, 1
je 0x4503eb
jmp case.0x44e679.92
test byte [esi + 1], 0x20
je 0x44eda5
mov eax, dword [esi + 0x184]
mov ecx, dword [esi + 0x12c]
mov edi, dword [esi + 0x94]
cmp eax, ecx
cmova eax, ecx
xor edx, edx
mov ecx, esi
inc edx
test eax, eax
mov dword [esi + 0x184], eax
cmovne edx, eax
add edx, dword [esi + 0x98]
jmp 0x44fe17
mov eax, dword [esi + 0x12c]
mov ecx, dword [esi + 0x184]
imul eax, dword [esi + 0x128]
cmp ecx, eax
cmovbe eax, ecx
mov dword [esi + 0x184], eax
mov edx, dword [esi + 0x1064]
test edx, edx
je case.0x44e679.92
test eax, eax
je case.0x44e679.92
mov ecx, esi
call fcn.00453251
cmp dword [esi + 0x184], 2
jb case.0x44e679.92
xor edi, edi
inc edi
mov edx, dword [esi + 0x1064]
mov ecx, esi
call fcn.00453251
inc edi
cmp edi, dword [esi + 0x184]
jb 0x44fd59
jmp case.0x44e679.92
test byte [esi], 2
je 0x44eda5
mov edi, dword [esi + 0x1054]
test edi, edi
jne 0x44e697
jmp case.0x44e679.92
test byte [esi + 1], 0x20
je 0x44eda5
mov ecx, dword [esi + 0x128]
mov eax, dword [esi + 0x184]
cmp eax, ecx
cmova eax, ecx
xor ecx, ecx
mov dword [esi + 0x184], eax
movzx edx, byte [esi + 0xac]
test edx, edx
lea edi, [edx + edx]
mov edx, 0
je 0x44fdcc
mov edx, dword [esi + 0xa4]
sub eax, 1
cmovb eax, ecx
mov ecx, esi
add eax, edx
mov edx, dword [esi + 0x98]
push edi
push eax
jmp 0x44fe1a
test byte [esi + 1], 0x20
je 0x44eda5
mov eax, dword [esi + 0x184]
mov ecx, dword [esi + 0x128]
mov edx, dword [esi + 0x98]
cmp eax, ecx
cmova eax, ecx
xor edi, edi
mov ecx, esi
inc edi
test eax, eax
mov dword [esi + 0x184], eax
cmovne edi, eax
add edi, dword [esi + 0x94]
push 1
push edi
call fcn.004531c6
add esp, 8
mov byte [esi + 0x142], 1
cmp byte [esi + 0x106d], 0
jne case.0x44e679.92
jmp 0x44e9bf
test byte [esi], 2
je 0x44eda5
cmp dword [esi + 0x204], 1
jne case.0x44e679.92
mov eax, dword [esi + 0x184]
test eax, eax
je 0x450611
cmp eax, 3
jne case.0x44e679.92
cmp dword [esi + 0x12c], 0
jle case.0x44e679.92
xor eax, eax
mov ecx, dword [esi + 0xe14]
mov byte [ecx + eax], 0
inc eax
cmp eax, dword [esi + 0x12c]
jl 0x44fe77
jmp case.0x44e679.92
mov eax, dword [esi + 0x204]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 8]
test eax, eax
jle 0x45046d
xor edi, edi
mov ecx, dword [esi + edi*4 + 0x184]
cmp ecx, 0x6b
ja case.0x44feb7.3
jmp dword [ecx*4 + 0x495c10]
mov byte [esi + 0x48], 0
mov ecx, 0xfffffe00
and ecx, dword [esi + 0x40]
mov dword [esi + 0x40], ecx
mov edx, dword [esi + edi*4 + 0x184]
add edx, 0xffffffe2
jmp 0x44ff34
mov byte [esi + 0x4c], 0
mov ecx, 0xfffc01ff
and ecx, dword [esi + 0x40]
mov dword [esi + 0x40], ecx
mov edx, dword [esi + edi*4 + 0x184]
shl edx, 9
add edx, 0xffffb000
jmp 0x44ff34
mov byte [esi + 0x48], 0
mov ecx, 0xfffffe00
and ecx, dword [esi + 0x40]
mov dword [esi + 0x40], ecx
mov edx, dword [esi + edi*4 + 0x184]
add edx, 0xffffffae
jmp 0x44ff34
mov byte [esi + 0x4c], 0
mov ecx, 0xfffc01ff
and ecx, dword [esi + 0x40]
mov dword [esi + 0x40], ecx
mov edx, dword [esi + edi*4 + 0x184]
shl edx, 9
add edx, 0xffff4800
or edx, ecx
mov dword [esi + 0x40], edx
mov edx, dword [esp + 8]
inc edi
cmp edi, eax
jl 0x44fea7
jmp 0x45046d
mov ecx, dword [esi + 0x3c]
mov edx, dword [esi + 0x60]
mov dword [esi + 0x40], ecx
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x48], edx
mov dword [esi + 0x4c], ecx
jmp 0x44ff39
test byte [esi], 4
je 0x4500bd
mov ecx, dword [esp + 0x10]
or byte [ecx + 2], 4
jmp case.0x44feb7.3
test byte [esi + 1], 0x40
je 0x4500bd
mov ecx, dword [esp + 0x10]
or byte [ecx + 3], 1
jmp case.0x44feb7.3
test byte [esi], 4
je 0x4500bd
mov ecx, dword [esp + 0x10]
or byte [ecx + 2], 0x20
jmp case.0x44feb7.3
test byte [esi + 1], 0x10
je 0x4500bd
mov byte [esi + 0xc9], 0
or byte [esi + 0x42], 0x20
mov ecx, esi
call fcn.0044a769
mov edx, dword [esp + 8]
mov eax, dword [esi + 0x204]
jmp case.0x44feb7.3
mov ecx, dword [esp + 0x10]
or byte [ecx + 2], 0x10
jmp case.0x44feb7.3
test byte [esi + 1], 0x10
je 0x4500bd
cmp byte [esi + 0x10eb], 0
jne case.0x44feb7.3
mov dword [esi + 0xcc], 0
jmp case.0x44feb7.3
test byte [esi + 1], 0x10
je 0x4500bd
cmp byte [esi + 0x10eb], 0
jne case.0x44feb7.3
mov dword [esi + 0xcc], 1
jmp case.0x44feb7.3
test byte [esi + 1], 0x10
je 0x4500bd
cmp byte [esi + 0x10eb], 0
jne case.0x44feb7.3
mov dword [esi + 0xcc], 2
jmp case.0x44feb7.3
test byte [esi + 1], 0x40
je 0x4500bd
test byte [esi], 4
je 0x4500bd
mov ecx, dword [esp + 0x10]
or byte [ecx + 2], 8
jmp case.0x44feb7.3
movzx ecx, word [esi]
test ecx, 0x4010
je 0x4500bd
mov ecx, dword [esp + 0x10]
and dword [ecx], 0xfefbffff
jmp case.0x44feb7.3
movzx ecx, word [esi]
test ecx, 0x4010
je 0x4500bd
mov ecx, dword [esp + 0x10]
and byte [ecx + 2], 0xf7
jmp case.0x44feb7.3
movzx ecx, word [esi]
test ecx, 0x4010
je 0x4500bd
mov ecx, dword [esp + 0x10]
and byte [ecx + 2], 0xdf
jmp case.0x44feb7.3
movzx ecx, word [esi]
test ecx, 0x4010
je 0x4500bd
mov ecx, dword [esp + 0x10]
and byte [ecx + 2], 0xef
jmp case.0x44feb7.3
mov ecx, dword [esp]
mov dword [ecx], 0
jmp case.0x44feb7.3
lea ecx, [edi + 2]
cmp ecx, eax
jge 0x45017e
cmp dword [esi + edi*4 + 0x188], 5
jne 0x45017e
mov edx, 0xfffffe00
and edx, dword [esi + 0x40]
mov dword [esi + 0x40], edx
movzx edi, byte [esi + edi*4 + 0x18c]
or edi, edx
mov edx, dword [esp + 8]
mov dword [esi + 0x40], edi
mov dword [esi + 0x48], 0
jmp 0x450180
mov byte [esi + 0x48], 0
mov ecx, 0xfffffe00
and ecx, dword [esi + 0x40]
or ecx, 0x100
jmp 0x450176
lea ecx, [edi + 2]
cmp ecx, eax
jge 0x4501de
cmp dword [esi + edi*4 + 0x188], 5
jne 0x4501de
mov edx, 0xfffc01ff
and edx, dword [esi + 0x40]
mov dword [esi + 0x40], edx
mov ebx, dword [esi + edi*4 + 0x18c]
movzx edi, bl
mov ebx, dword [esp + 4]
shl edi, 9
or edi, edx
mov edx, dword [esp + 8]
mov dword [esi + 0x40], edi
mov dword [esi + 0x4c], 0
jmp 0x4501e0
mov byte [esi + 0x4c], 0
mov ecx, 0xfffc01ff
and ecx, dword [esi + 0x40]
or ecx, 0x20400
mov dword [esi + 0x40], ecx
jmp case.0x44feb7.3
mov ecx, edi
lea edi, [ecx + 4]
cmp edi, eax
jge 0x450236
cmp dword [esi + ecx*4 + 0x188], 2
jne 0x450236
mov byte [esi + 0x48], 1
mov ebp, 0x100
xor edx, edx
mov ebx, dword [esi + ecx*4 + 0x18c]
cmp ebx, ebp
cmovae ebx, edx
mov byte [esi + 0x49], bl
mov ebx, dword [esi + ecx*4 + 0x190]
cmp ebx, ebp
cmovae ebx, edx
mov byte [esi + 0x4a], bl
mov ebx, dword [esp + 4]
mov ecx, dword [esi + ecx*4 + 0x194]
cmp ecx, ebp
mov ebp, dword [esp + 0x18]
cmovb edx, ecx
mov byte [esi + 0x4b], dl
jmp 0x44ff39
mov ecx, edi
lea edi, [ecx + 4]
cmp edi, eax
jge 0x450236
cmp dword [esi + ecx*4 + 0x188], 2
jne 0x450236
mov byte [esi + 0x4c], 1
mov ebp, 0x100
xor edx, edx
mov ebx, dword [esi + ecx*4 + 0x18c]
cmp ebx, ebp
cmovae ebx, edx
mov byte [esi + 0x4d], bl
mov ebx, dword [esi + ecx*4 + 0x190]
cmp ebx, ebp
cmovae ebx, edx
mov byte [esi + 0x4e], bl
mov ebx, dword [esp + 4]
mov ecx, dword [esi + ecx*4 + 0x194]
cmp ecx, ebp
mov ebp, dword [esp + 0x18]
cmovb edx, ecx
mov byte [esi + 0x4f], dl
jmp 0x44ff39
mov edi, ecx
jmp case.0x44feb7.3
mov eax, dword [esi + 0x1054]
test eax, eax
je case.0x44e679.92
mov ecx, dword [esi + 0x184]
cmp ecx, 5
je 0x450578
cmp ecx, 6
jne case.0x44e679.92
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 + 0x5c]
push edi
call fcn.00403ccc
add esp, 0x10
push edi
call fcn.0047e720
add esp, 4
push 0
push eax
push edi
push dword [esi + 0x1054]
jmp 0x44e6a9
test byte [esi], 2
je 0x44eda5
mov edx, dword [esi + 0x204]
cmp edx, 2
jg case.0x44e679.92
mov edi, dword [esi + 0x128]
mov eax, dword [esi + 0x184]
cmp eax, edi
cmova eax, edi
mov dword [esi + 0x184], eax
mov ebx, dword [esi + 0x188]
cmp ebx, edi
cmova ebx, edi
xor ecx, ecx
sub eax, 1
cmovb eax, ecx
test ebx, ebx
mov dword [esi + 0x188], ebx
cmove ebx, edi
cmp edx, 2
lea edx, [edi - 1]
cmovne ebx, edi
dec ebx
cmp ebx, edi
cmovl edx, ebx
mov ebx, dword [esp + 4]
cmp edx, eax
jle case.0x44e679.92
mov dword [esi + 0xa4], eax
mov dword [esi + 0xa8], edx
mov dword [esi + 0x98], ecx
cmp byte [esi + 0xac], cl
cmove eax, ecx
mov dword [esi + 0x94], eax
jmp 0x44f891
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0x98]
mov dword [esi + 0xa0], ecx
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x48]
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x50], ecx
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0xb0]
mov dword [esi + 0xb4], eax
mov cl, byte [esi + 0xd5]
mov byte [esi + 0xbc], cl
mov cl, byte [esi + 0xae]
mov byte [esi + 0xbd], cl
mov eax, dword [esi + eax*4 + 0x154]
mov dword [esi + 0xb8], eax
mov eax, dword [esi + 0xcc]
mov dword [esi + 0xd0], eax
jmp case.0x44e679.92
mov eax, dword [esi + 0x204]
cmp eax, 1
jg 0x45052f
mov ecx, dword [esi + 0x184]
lea edx, [ecx - 1]
cmp edx, 0x17
jb 0x450527
test byte [esi + 1], 1
je 0x44eda5
cmp byte [esi + 0x10ec], 0
jne 0x4503eb
test ecx, ecx
mov eax, 0x18
cmovne eax, ecx
mov ecx, dword [esi + 0x1058]
mov edx, dword [ecx]
push eax
push dword [esi + 0x12c]
push ecx
call dword [edx + 0x34]
add esp, 0xc
xor eax, eax
mov dword [esi + 0xe1c], eax
mov ecx, dword [esp + 0x24]
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov dword [ecx + 0xc], eax
mov dword [ecx + 8], eax
mov edx, dword [esp + 0x1c]
jmp 0x44d822
mov ecx, esi
xor edx, edx
call fcn.0045390e
jmp 0x44fe22
test byte [esi], 2
je 0x44e5d1
mov edi, dword [esi + 0x1054]
test edi, edi
je case.0x44e679.92
mov ebx, dword [esi + 0x184]
cmp ebx, 1
ja 0x44e6e7
push 0x15
push str.e_2_1_1_112_112_1_0x
lea ebp, [esp + 0x58]
push ebp
call fcn.004716e0
add esp, 0xc
add bl, 0x32
mov byte [esp + 0x52], bl
push 0
push 0x14
push ebp
push edi
call fcn.0040e721
add esp, 0x10
jmp 0x44e6e7
mov eax, dword [edx + 0x10]
mov dword [ebp + 0x10], eax
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [ebp + 8], xmm1
movsd qword [ebp], xmm0
cmp byte [esi + 0xc6], 0
je case.0x44e679.92
mov eax, 0x3ffff
and eax, dword [esi + 0x40]
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x78], eax
jmp case.0x44e679.92
inc eax
xor ecx, ecx
cmp eax, 3
cmova eax, ecx
mov ecx, esi
xor edx, edx
mov edi, eax
and eax, 2
and edi, 1
shr eax, 1
push edi
push eax
call fcn.0045155e
add esp, 8
cmp byte [esi + 0x10f9], 0
je 0x44fe22
mov dword [esi + 0x10], 0
jmp 0x44fe22
test eax, eax
je 0x4504f9
cmp eax, 0x28
je 0x450592
cmp eax, 0x29
jne 0x4505b0
mov dword [esi], 0xffff
jmp case.0x44e679.92
cmp eax, 0x3e
je 0x45059d
cmp eax, 0x3d
jne 0x4505b0
mov eax, dword [esi]
mov ecx, 0xfffffe00
and eax, ecx
or eax, 0xf
jmp 0x4505a9
test eax, eax
jle case.0x44e679.92
mov ecx, dword [esi + 0x184]
dec ecx
cmp ecx, 0x16
ja case.0x44e679.92
test byte [esi + 1], 0x40
je 0x44eda5
cmp ecx, 0x14
ja case.0x44e679.92
jmp dword [ecx*4 + 0x495bbc]
mov eax, dword [esi + 0x1058]
mov ecx, dword [eax]
push 0
jmp 0x4506b9
and eax, 0xffdfffff
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
jmp case.0x44e679.92
push 0
push 4
push str.e_0n
push eax
jmp 0x44e6a9
mov dword [esi], 0x1001
jmp case.0x44e679.92
and dword [esi], 0x1ff
jmp case.0x44e679.92
mov eax, dword [esi]
mov ecx, 0xfffffe00
and eax, ecx
or eax, 0x1f
mov dword [esi], eax
jmp case.0x44e679.92
lea ecx, [eax - 0x3d]
cmp ecx, 8
ja 0x450626
or dword [esi], 0x1ff
jmp case.0x44e679.92
mov al, 1
mov byte [esi + 0x143], al
mov byte [esi + 0xc4], al
jmp case.0x44e679.92
mov byte [esi + 0x143], 0
mov byte [esi + 0xc4], 1
jmp case.0x44e679.92
mov eax, dword [esi + 0x184]
cmp eax, 4
jne case.0x44e679.92
cmp byte [esi + 0xe4], 0
je case.0x44e679.92
mov ecx, esi
call fcn.0044a69e
jmp case.0x44e679.92
mov eax, dword [esi + 0xe14]
mov ecx, dword [esi + 0x98]
mov byte [eax + ecx], 0
jmp case.0x44e679.92
cmp eax, 0x32
jne case.0x44e679.92
mov dword [esi + 0xa12], 0x3f5b1b
cmp dword [esi + 0x204], 2
jl 0x450694
xor edi, edi
test edi, edi
je 0x45065e
push dword [esp + 0x28]
call fcn.0047e720
add esp, 4
mov word [esi + eax + 0xa12], 0x3b
push dword [esi + edi*4 + 0x188]
push 0x49d7ad
lea ebp, [esp + 0x58]
push ebp
call fcn.00403ccc
add esp, 0xc
push ebp
push dword [esp + 0x2c]
call fcn.0047e400
add esp, 8
lea eax, [edi + 1]
add edi, 2
cmp edi, dword [esi + 0x204]
mov edi, eax
jl 0x450644
push dword [esp + 0x28]
call fcn.0047e720
add esp, 4
mov word [esi + eax + 0xa12], 0x63
jmp case.0x44e679.92
mov eax, dword [esi + 0x1058]
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x40]
jmp 0x44f05a
cmp eax, 3
jl case.0x44e679.92
cmp byte [esi + 0x10ec], 0
jne case.0x44e679.92
mov eax, dword [esi + 0x1058]
mov ecx, dword [eax]
push dword [esi + 0x18c]
push dword [esi + 0x188]
push eax
call dword [ecx + 0x4c]
jmp 0x44e2b1
mov eax, dword [esi + 0x1058]
mov ecx, dword [eax]
push 1
jmp 0x45070b
mov eax, dword [esi + 0x1058]
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x50]
jmp 0x44f05a
mov eax, dword [esi + 0x1058]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x30]
jmp 0x44db9f
cmp eax, 3
jl case.0x44e679.92
cmp byte [esi + 0x10ec], 0
jne case.0x44e679.92
mov eax, dword [esi + 0x188]
test eax, eax
jne 0x45074f
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x10cc]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x18c]
test ecx, ecx
jne 0x450767
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x10d0]
mov esi, dword [esp + 0x14]
mov edx, dword [esi + 0x1058]
mov edi, dword [edx]
push eax
push ecx
push edx
call dword [edi + 0x34]
add esp, 0xc
jmp 0x44e6e7
cmp eax, 2
jl case.0x44e679.92
mov ecx, dword [esi + 0x1058]
xor eax, eax
cmp dword [esi + 0x188], 0
mov edx, dword [ecx]
setne al
push eax
push ecx
call dword [edx + 0x48]
add esp, 8
jmp case.0x44e679.92
cmp dword [esi + 0x1054], 0
je case.0x44e679.92
mov eax, dword [esi + 0x1058]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x44]
add esp, 4
mov ecx, str.e_2t
mov edx, str.e_1t
test al, al
cmovne edx, ecx
push 0
push 4
push edx
jmp 0x450292
cmp dword [esi + 0x1054], 0
je case.0x44e679.92
mov eax, dword [esi + 0x1058]
lea edi, [esp + 0x44]
lea ebx, [esp + 0x48]
mov ecx, dword [eax]
push edi
push ebx
push eax
call dword [ecx + 0x60]
add esp, 0xc
lea ebp, [esp + 0x90]
push dword [edi]
push dword [ebx]
mov ebx, dword [esp + 0xc]
push str.e_3__u__ut
jmp 0x450856
cmp dword [esi + 0x1054], 0
je case.0x44e679.92
mov eax, dword [esi + 0x1058]
lea edi, [esp + 0x44]
lea ebx, [esp + 0x48]
mov ecx, dword [eax]
push edi
push ebx
push eax
call dword [ecx + 0x64]
add esp, 0xc
lea ebp, [esp + 0x90]
push dword [ebx]
mov ebx, dword [esp + 8]
push dword [edi]
push str.e_4__d__dt
push ebp
call fcn.00403ccc
add esp, 0x10
push 0
push eax
push ebp
jmp 0x450292
cmp dword [esi + 0x1054], 0
je case.0x44e679.92
lea edi, [esp + 0x90]
push dword [esi + 0x12c]
push dword [esi + 0x128]
push str.e_8__d__dt
push edi
call fcn.00403ccc
add esp, 0x10
jmp 0x45028e
mov ebp, dword [esi + 0x1054]
test ebp, ebp
je case.0x44e679.92
mov eax, dword [esi + 0x10f4]
test eax, eax
je case.0x44e679.92
cmp eax, 2
jne 0x45091b
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x1058]
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x68]
add esp, 8
mov ebp, dword [esi + 0x1054]
mov edi, eax
jmp 0x450921
mov ebp, dword [esi + 0x1054]
test ebp, ebp
je case.0x44e679.92
mov eax, dword [esi + 0x10f4]
test eax, eax
je case.0x44e679.92
cmp eax, 2
jne 0x450938
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x1058]
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x68]
add esp, 8
mov ebp, dword [esi + 0x1054]
mov edi, eax
jmp 0x45093e
mov edi, dword [0x4b5048]
push edi
call fcn.0047e720
add esp, 4
mov esi, eax
xor ebx, ebx
push ebx
push 3
push 0x4a6250
jmp 0x450953
mov edi, dword [0x4b5048]
push edi
call fcn.0047e720
add esp, 4
mov esi, eax
xor ebx, ebx
push ebx
push 3
push 0x4a2167
push ebp
call fcn.0040e721
add esp, 0x10
push ebx
push esi
push edi
mov esi, dword [esp + 0x20]
push dword [esi + 0x1054]
call fcn.0040e721
add esp, 0x10
push ebx
push 2
push 0x4a5960
push dword [esi + 0x1054]
call fcn.0040e721
add esp, 0x10
mov ebx, dword [esp + 4]
jmp case.0x44e679.92
mov ecx, esi
call fcn.0045293c
cmp byte [esi + 0x10dd], 0
je 0x4509b3
mov eax, dword [esi + 0x105c]
test eax, eax
je 0x4509b3
push eax
call fcn.0040ef00
add esp, 4
mov ecx, dword [esp + 0x1e0]
xor ecx, esp
call fcn.0046f0c8
add esp, 0x1e4
pop esi
pop edi
pop ebx
pop ebp
ret