Function at 0x44de69
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, 0x1f0
mov eax, dword [0x4b6078]
mov esi, ecx
sub ecx, 0xffffff80
lea edx, [esi + 0xd8]
lea edi, [esi + 0xec]
lea ebp, [esi + 0xe18]
xor eax, esp
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x4c], edx
lea edx, [esi + 0x6c]
mov dword [esp + 0x28], edi
lea edi, [esi + 0x40]
mov dword [esp + 0x34], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], ecx
mov dword [esp], ebp
mov dword [esp + 8], esi
mov dword [esp + 4], edx
lea edx, [esi + 0xe28]
mov dword [esp + 0xc], edi
lea edi, [esi + 0x58]
mov dword [esp + 0x18], edx
lea edx, [esi + 0xa12]
mov dword [esp + 0x1c], edi
lea edi, [esi + 0x28]
mov dword [esp + 0x20], edx
xor edx, edx
mov dword [esp + 0x48], edi
dec edx
mov dword [esp + 0x14], edx
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
test edi, edi
jne 0x44df7a
cmp eax, 0xffffffff
jne 0x44df7a
push dword [esp + 0x30]
call fcn.00456795
add esp, 4
test eax, eax
je 0x451036
mov esi, ebp
mov ebp, dword [esp + 0x30]
push ebp
call fcn.004568eb
add esp, 4
mov ecx, 0x100
mov edi, edx
cmp edx, ecx
cmovae edi, ecx
push edi
push eax
lea ebx, [esp + 0xf4]
push ebx
call fcn.004720b0
add esp, 0xc
push edi
push ebp
mov ebp, esi
mov esi, dword [esp + 0x10]
call fcn.0045685a
add esp, 8
test edi, edi
jne 0x44df8d
push 0xcbb
push str..._terminal.c
push str.nchars___0
call fcn.0047bdbf
add esp, 0xc
xor edi, edi
lea ebx, [esp + 0xec]
jmp 0x44df8d
cmp eax, 0xffffffff
je 0x44df85
mov dword [esp + 0x58], eax
jmp 0x44dfc0
mov ebx, dword [esp + 0x2c]
test edi, edi
je 0x44df17
movzx eax, byte [ebx]
inc ebx
dec edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x58], eax
cmp dword [esi + 0x10e0], 2
jne 0x44dfc0
mov ecx, dword [esi + 0x105c]
test ecx, ecx
je 0x44dfc0
movzx eax, al
push 2
push eax
push ecx
call fcn.0040f36c
add esp, 0xc
cmp byte [esi + 0xe4], 0
je 0x44e010
push 1
lea eax, [esp + 0x5c]
push eax
push dword [esp + 0x30]
call fcn.004567b0
add esp, 0xc
cmp byte [esi + 0xe5], 0
je 0x44e010
mov eax, dword [esp + 0x58]
cmp eax, 0x5a
jle 0x44e068
cmp eax, 0x5b
je 0x44e087
cmp eax, 0x69
je 0x44e09c
cmp eax, 0x9b
je 0x44e090
jmp 0x44e0b8
cmp dword [ebp], 0
mov edx, dword [esp + 0x58]
je 0x44e026
xor eax, eax
dec eax
mov dword [esp + 0x14], eax
jmp 0x44e0e7
movzx eax, dl
push eax
push dword [esp + 0x50]
push esi
call fcn.0044bb75
add esp, 0xc
cmp eax, 0x8000003f
mov ecx, 0xffffffff
mov dword [esp + 0x14], ecx
je 0x44def2
mov edx, 0xd961
cmp eax, 0x8000002a
je 0x44e0dc
cmp eax, 0x80000021
jne 0x44e0da
mov eax, dword [esp + 0x58]
jmp 0x44e0df
cmp eax, 0x1b
je 0x44e0c4
cmp eax, 0x34
jne 0x44e0b8
cmp dword [esi + 0xe8], 2
jne 0x44e0b8
mov dword [esi + 0xe8], 3
jmp 0x44e0ce
cmp dword [esi + 0xe8], 1
jne 0x44e0b8
mov dword [esi + 0xe8], 2
jmp 0x44e0ce
cmp dword [esi + 0xe8], 3
jne 0x44e0b8
mov ecx, esi
mov dword [esi + 0xe8], 4
call fcn.0044acae
jmp 0x44e0ce
mov dword [esi + 0xe8], 0
jmp 0x44e0ce
mov dword [esi + 0xe8], 1
xor eax, eax
dec eax
mov dword [esp + 0x14], eax
jmp 0x44def2
mov edx, eax
xor eax, eax
dec eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x58], edx
mov eax, edx
and eax, 0xffffffe0
cmp eax, 0x80
jne 0x44e10b
cmp dword [ebp], 4
jg 0x44e10b
cmp byte [esi + 0x13e], 0
jne 0x44e10b
test byte [esi], 0x10
jne 0x44e1e3
cmp edx, 0x7f
jne 0x44e14d
mov eax, dword [ebp]
cmp eax, 4
jg 0x44e1bd
test byte [esi + 1], 0x40
je 0x44e1bd
mov edx, dword [esi + 0x98]
test edx, edx
je 0x44e1fc
cmp byte [esi + 0xae], 0
jne 0x44e1fe
dec edx
mov dword [esi + 0x98], edx
jmp 0x44e1fe
mov eax, dword [ebp]
cmp edx, 0x1f
ja 0x44e1bd
cmp eax, 4
jg 0x44e1bd
add edx, 0xfffffffb
cmp edx, 0x16
ja case.0x44ed4c.92
jmp dword [edx*4 + 0x4968d0]
test byte [esi], 1
je 0x44edc1
cmp dword [esi + 0x1054], 0
je case.0x44ed4c.92
xor edx, edx
mov ecx, esi
push dword [esi + 0x10a8]
push dword [esi + 0x10a4]
call fcn.00451656
add esp, 8
mov edi, eax
push 0
push dword [eax + 8]
push dword [eax]
push dword [esi + 0x1054]
call fcn.0040e6dd
add esp, 0x10
push edi
call fcn.004563a4
jmp 0x44e265
cmp eax, 0xd
ja case.0x44ed4c.92
jmp dword [eax*4 + 0x49692c]
mov ecx, esi
call fcn.0045391f
mov eax, dword [esp + 0x58]
mov dword [esi + 0x1064], eax
jmp case.0x44ed4c.92
cmp edx, 0x9a
jne 0x44e5c1
mov dword [esp + 0x58], 0
jmp case.0x44ed4c.92
xor edx, edx
xor eax, eax
mov byte [esi + 0xae], al
cmp byte [esi + 0x10e9], al
jne case.0x44ed4c.92
mov ecx, esi
push dword [esi + 0x94]
call fcn.00452183
add esp, 4
mov edx, dword [esi + 0x98]
mov ecx, esi
inc edx
push dword [esi + 0x94]
call fcn.00452183
add esp, 4
mov edx, dword [esi + 0x94]
mov edi, dword [esi + 0x98]
xor eax, eax
mov ecx, esi
inc eax
push eax
push 0xd1a
call fcn.0044aeda
add esp, 8
mov ecx, eax
mov edx, edi
push dword [esp + 4]
call fcn.00452252
add esp, 4
jmp case.0x44ed4c.92
lea eax, [edx - 0x30]
mov dword [ebp], 0
cmp eax, 9
ja 0x44e65b
mov ecx, dword [esi + 0x204]
cmp ecx, 0x20
jg 0x44e683
lea ecx, [esi + ecx*4 + 0x180]
mov edi, dword [ecx]
test edi, edi
jne 0x44e2b1
mov dword [ecx], 0
mov ecx, dword [esi + 0x204]
lea ecx, [esi + ecx*4 + 0x180]
mov edi, dword [ecx]
cmp edi, 0x19999999
mov ebx, 0xffffffff
ja 0x44e2d8
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 ebp, dword [esp]
mov dword [ecx], ebx
jmp 0x44e683
lea eax, [edx - 0x30]
mov byte [esi + 0xa11], 0
cmp eax, 0x22
ja case.default.0x44e2f5
jmp dword [eax*4 + 0x496a54]
mov eax, dword [esi + 0x204]
mov ecx, dword [esi + eax*4 + 0x180]
cmp ecx, 0x19999999
ja 0x44e325
add ecx, ecx
mov edi, 0xffffffcf
lea ecx, [ecx + ecx*4]
sub edi, edx
cmp ecx, edi
jbe 0x44ecc0
mov dword [esi + eax*4 + 0x180], 0xffffffff
jmp case.0x44ed4c.92
lea eax, [edx - 0x30]
cmp eax, 9
ja case.0x44e2f5.58
mov ecx, dword [esi + 0x184]
cmp ecx, 0x19999999
ja 0x44e363
add ecx, ecx
mov edi, 0xffffffcf
lea ecx, [ecx + ecx*4]
sub edi, edx
cmp ecx, edi
jbe 0x44edb1
mov dword [esi + 0x184], 0xffffffff
jmp case.0x44ed4c.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 0x44ea54
cmp edx, 0x41
jl 0x44ea3b
lea edi, [ecx + 0x37]
cmp edx, edi
jg 0x44ea3b
add edx, 0xffffffc9
jmp 0x44ea52
cmp edx, 0xc
jle 0x44e8d3
cmp edx, 0x9c
je 0x44e993
cmp edx, 0x1b
je 0x44ecb4
cmp edx, 0xd
je 0x44edc1
jmp 0x44e8e5
cmp edx, 0x5c
jne case.0x44e1c6.1
mov ecx, esi
call fcn.00453e2a
jmp 0x44e99a
mov dword [esi + 0xe18], 0
mov byte [esi + 0x142], 1
cmp byte [esi + 0x106d], 0
jne 0x44e42b
mov byte [esi + 0x106d], 1
push esi
push 0x452601
push 0x14
call fcn.004549b4
add esp, 0xc
mov dword [esi + 0x1070], eax
mov edx, dword [esp + 0x58]
add edx, 0xffffffc4
cmp edx, 0x3b
ja case.0x44ed4c.92
jmp dword [edx*4 + 0x496964]
mov byte [esi + 0x13e], 0
mov al, byte [esi + 0x10c7]
mov byte [esi + 0xc9], al
mov ecx, esi
call fcn.0044ad79
jmp case.0x44ed4c.92
mov dword [esi + 0xe18], 0xb
mov ebx, esi
add edx, 0xffffffe0
mov eax, dword [esi + 0x98]
mov edi, dword [ebx + 0x12c]
mov ecx, dword [esi + 0x128]
mov esi, ebp
mov ebp, 0
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 ebp, esi
mov esi, ebx
mov dword [ebx + 0x98], edi
cmp edx, ecx
cmovl eax, edx
mov dword [ebx + 0x94], eax
mov byte [ebx + 0xae], 0
jmp case.0x44ed4c.92
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.0x44ed4c.92
mov dword [esi + 0xe18], 0
mov ecx, 0xfffbfe00
and edx, 0xf
mov eax, dword [esi + 0x40]
and eax, ecx
mov ecx, dword [esp + 4]
or edx, eax
mov dword [esi + 0x40], edx
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x10], eax
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
mov esi, dword [esp + 8]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
cmp byte [esi + 0xc6], 0
je case.0x44ed4c.92
and edx, 0x3fe0f
jmp 0x44e5b3
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 + 4]
or edx, eax
mov dword [esi + 0x40], edx
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x10], eax
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
mov esi, dword [esp + 8]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
cmp byte [esi + 0xc6], 0
je case.0x44ed4c.92
and edx, 0x1fff
mov dword [esi + 0x70], edx
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x78], eax
jmp case.0x44ed4c.92
and edx, 0x1f
mov dword [esi + 0xe18], 1
mov dword [esi + 0x208], 0
or edx, 0x40
mov dword [esp + 0x58], edx
mov eax, edx
and eax, 0xfffffff0
cmp eax, 0x20
jne 0x44e605
cmp dword [esi + 0x208], 0
je 0x44e988
mov dword [esi + 0x208], 0xffffffff
jmp case.0x44ed4c.92
mov dword [esi + 0xe18], 0
mov eax, dword [esi + 0x208]
shl eax, 8
add eax, edx
cmp eax, 0x2337
jg 0x44e879
cmp eax, 0x59
jg 0x44e9a9
lea ecx, [eax - 0x37]
cmp ecx, 7
jbe switch.0x0044ecd0
add eax, 0xffffffbc
cmp eax, 9
ja case.0x44ed4c.92
jmp dword [eax*4 + 0x496e10]
test byte [esi], 2
je 0x44f460
jmp 0x44f418
cmp edx, 0x3b
jne 0x44eae9
mov eax, dword [esi + 0x204]
cmp eax, 0x1f
jg 0x44e683
lea ecx, [eax + 1]
mov dword [esi + 0x204], ecx
mov dword [esi + eax*4 + 0x184], 0
mov dword [ebp], 2
jmp case.0x44ed4c.92
mov ebx, ebp
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
cmp byte [esi + 0x34], 0
mov edi, dword [esp + 0x48]
mov ebp, eax
jne 0x44ef5a
xor eax, eax
push eax
push 8
push 1
call fcn.00410b8c
add esp, 0xc
xor ecx, ecx
mov dword [eax + 4], ebp
mov dword [eax], ecx
cmp dword [edi], ecx
je 0x44ef50
mov ecx, dword [esi + 0x2c]
jmp 0x44ef52
mov eax, dword [esi + 0x98]
test eax, eax
je 0x44ebdf
cmp byte [esi + 0xae], 0
je 0x44ee6e
mov byte [esi + 0xae], 0
jmp 0x44ee75
mov edx, dword [esi + 0x94]
mov eax, dword [esi + 0x98]
mov ecx, esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], edx
push 1
push 0xdb8
call fcn.0044aeda
add esp, 8
mov ebx, dword [esi + 0x98]
mov edi, dword [esi + 0x12c]
lea edx, [edi - 1]
inc ebx
mov ecx, ebx
cmp ebx, edx
mov dword [esi + 0x98], ebx
jge 0x44e745
mov ebp, dword [esi + 0xe14]
lea ebx, [ecx + 1]
cmp byte [ebp + ecx], 0
je 0x44e729
test byte [eax], 3
je 0x44ec1b
mov eax, edi
mov ebp, dword [esp]
mov ebx, dword [esp + 0x24]
shr eax, 0x1f
add eax, edi
mov edi, dword [esp + 0x10]
sar eax, 1
cmp ecx, eax
jl 0x44ec32
dec eax
mov dword [esi + 0x98], eax
mov ecx, eax
jmp 0x44ec32
test byte [esi + 1], 0x10
jne 0x44eb1d
test byte [esi], 2
je 0x44edc1
mov eax, dword [esi + 0x94]
cmp eax, dword [esi + 0xa8]
jne 0x44e90b
mov edx, dword [esi + 0xa4]
xor edi, edi
mov ecx, esi
inc edi
push edi
push edi
push eax
call fcn.00451eb0
add esp, 0xc
jmp 0x44e91d
xor eax, eax
mov dword [esi + 0x98], 0
mov byte [esi + 0xae], al
mov byte [esi + 0x142], 1
cmp byte [esi + 0x106d], al
jne 0x44e7f6
mov byte [esi + 0x106d], 1
push esi
push 0x452601
push 0x14
call fcn.004549b4
add esp, 0xc
mov dword [esi + 0x1070], eax
cmp byte [esi + 0x10d4], 0
je 0x44e964
mov eax, dword [esi + 0x94]
cmp eax, dword [esi + 0xa8]
jne 0x44ed96
mov edx, dword [esi + 0xa4]
xor edi, edi
mov ecx, esi
inc edi
push edi
push edi
push eax
call fcn.00451eb0
add esp, 0xc
jmp 0x44e964
test byte [esi], 2
je 0x44edc1
mov dword [esi + 0xb0], 1
jmp case.0x44ed4c.92
test byte [esi], 2
je 0x44edc1
mov dword [esi + 0xb0], 0
jmp case.0x44ed4c.92
cmp byte [esi + 0x13e], 0
je 0x44ec92
mov dword [ebp], 9
jmp case.0x44ed4c.92
cmp eax, 0x2841
jg 0x44eb8e
cmp eax, 0x2546
jg 0x44ee81
cmp eax, 0x2338
je 0x44f233
cmp eax, 0x2538
je 0x44ef2d
cmp eax, 0x2540
jne case.0x44ed4c.92
test byte [esi + 1], 0x40
je 0x44f460
cmp byte [esi + 0x10eb], 0
jne case.0x44ed4c.92
mov byte [esi + 0xd5], 0
jmp case.0x44ed4c.92
cmp edx, 7
je 0x44e993
cmp edx, 0xa
je 0x44edc1
mov eax, dword [esi + 0x20c]
cmp eax, 0x7ff
jg case.0x44ed4c.92
lea ecx, [eax + 1]
mov dword [esi + 0x20c], ecx
mov byte [esi + eax + 0x210], dl
jmp case.0x44ed4c.92
mov ecx, dword [esi + 0x128]
dec ecx
cmp eax, ecx
jge 0x44e91d
inc eax
mov dword [esi + 0x94], eax
cmp byte [esi + 0x10dc], 0
je 0x44e930
mov dword [esi + 0x98], 0
xor eax, eax
mov byte [esi + 0xae], al
mov byte [esi + 0x142], 1
cmp byte [esi + 0x106d], al
jne 0x44e964
mov byte [esi + 0x106d], 1
push esi
push 0x452601
push 0x14
call fcn.004549b4
add esp, 0xc
mov dword [esi + 0x1070], eax
mov eax, dword [esi + 0x105c]
test eax, eax
je case.0x44ed4c.92
movzx ecx, byte [esp + 0x58]
push 1
push ecx
push eax
call fcn.0040f36c
add esp, 0xc
jmp case.0x44ed4c.92
mov dword [esi + 0x208], edx
jmp case.0x44ed4c.92
mov ecx, esi
call fcn.00453e2a
mov dword [esi + 0xe18], 0
jmp case.0x44ed4c.92
lea ecx, [eax - 0x5a]
cmp ecx, 9
jbe switch.0x0044ed4c
lea ecx, [eax - 0x2333]
cmp ecx, 4
jae case.0x44ed4c.92
test byte [esi], 2
je 0x44f460
cmp ecx, 2
mov ecx, 1
mov ebx, ebp
mov ebp, ecx
ja 0x44e9e3
movzx ebp, word [eax + eax + 0x4921fe]
mov edx, dword [esi + 0x94]
mov ecx, esi
push 1
push 0xe70
call fcn.0044aeda
add esp, 8
mov edi, eax
mov eax, dword [esi + 0x12c]
cmp eax, dword [edi + 4]
je 0x44ea14
mov ecx, esi
mov edx, edi
push eax
call fcn.00452365
add esp, 4
mov al, byte [edi + 0x18]
cmp al, byte [esi + 0x10a0]
je 0x44ea31
mov ecx, esi
mov edx, edi
call fcn.00452321
mov al, byte [esi + 0x10a0]
mov byte [edi + 0x18], al
mov word [edi], bp
mov ebp, ebx
jmp case.0x44ed4c.92
cmp edx, 0x61
jl 0x44edbe
add ecx, 0x57
cmp edx, ecx
jg 0x44edbe
add edx, 0xffffffa9
mov ebx, edx
lea ecx, [eax + 1]
mov ebp, dword [esp]
mov dword [esi + 0x20c], ecx
mov byte [esi + eax + 0x210], bl
cmp dword [esi + 0x20c], 7
jl case.0x44ed4c.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 edi, esi
mov esi, dword [esp + 0x14]
call dword [ebp + 0x58]
mov ebp, esi
mov esi, edi
add esp, 0x14
push edi
call fcn.0044be4c
add esp, 4
mov dword [edi + 0xe18], 0
jmp case.0x44ed4c.92
mov eax, dword [esi + 0x208]
cmp edx, 0x3f
ja 0x44edcd
mov ecx, 1
cmove edx, ecx
cmp eax, ecx
sbb eax, eax
not eax
or eax, edx
mov dword [esi + 0x208], eax
mov dword [esi + 0xe18], 2
jmp case.0x44ed4c.92
mov ecx, dword [esi + 0x12c]
mov eax, dword [esi + 0x128]
mov ebx, 0
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
xor edx, edx
mov ecx, esi
mov dword [esi + 0x94], eax
mov byte [esi + 0xae], bl
push 1
push ebx
call fcn.00451c34
add esp, 8
cmp byte [esi + 0x10f9], bl
je 0x44eb6e
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.0x44ed4c.92
jmp 0x44f0ad
cmp eax, 0x2940
jg 0x44eec7
cmp eax, 0x2842
je 0x44f353
cmp eax, 0x2855
je 0x44f378
cmp eax, 0x2930
jne case.0x44ed4c.92
test byte [esi], 2
je 0x44f460
cmp byte [esi + 0x10eb], 0
jne case.0x44ed4c.92
mov dword [esi + 0x158], 0xd900
jmp case.0x44ed4c.92
mov ecx, dword [esi + 0x94]
test ecx, ecx
je 0x44ee75
cmp byte [esi + 0xad], 0
je 0x44ee75
test ecx, ecx
jle 0x44e6db
mov eax, dword [esi + 0x12c]
dec ecx
dec eax
mov dword [esi + 0x98], eax
mov dword [esi + 0x94], ecx
jmp 0x44ee75
cmp ecx, edi
mov ebp, dword [esp]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x24]
jl 0x44ec32
mov ecx, edx
mov dword [esi + 0x98], edx
cmp dword [esi + 0xe34], ebx
mov eax, dword [esi + 0x94]
setg dl
cmp dword [esi + 0xe30], edi
setg dh
je 0x44ec4e
mov dl, dh
cmp dl, 1
jne 0x44ee75
cmp dword [esi + 0xe2c], ecx
setl cl
cmp dword [esi + 0xe28], eax
setl al
je 0x44ec6d
mov ecx, eax
cmp cl, 1
jne 0x44ee75
mov eax, dword [esp + 0x18]
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 0x44ee75
test byte [esi], 1
je 0x44edc1
mov dword [esi + 0xe18], 1
mov dword [esi + 0x208], 0
jmp case.0x44ed4c.92
mov dword [ebp], 8
jmp case.0x44ed4c.92
lea ecx, [edx + ecx - 0x30]
mov dword [esi + eax*4 + 0x180], ecx
jmp case.0x44ed4c.92
jmp dword [ecx*4 + 0x496df0]
test byte [esi], 2
je 0x44f460
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.0x44ed4c.92
jmp dword [ecx*4 + 0x496e38]
test byte [esi], 2
je 0x44f460
mov edi, dword [esi + 0x1054]
test edi, edi
je case.0x44ed4c.92
mov eax, dword [esp + 0x20]
cmp byte [eax], 0
je case.0x44ed4c.92
mov ebx, dword [esp + 0x20]
push ebx
call fcn.0047f0f0
add esp, 4
push 0
push eax
push ebx
push edi
call fcn.0040e6dd
add esp, 0x10
jmp case.0x44ed4c.92
mov ecx, dword [esi + 0x128]
dec ecx
cmp eax, ecx
jge 0x44e964
inc eax
mov dword [esi + 0x94], eax
jmp 0x44e964
add eax, ecx
mov dword [esi + 0x184], eax
jmp case.0x44ed4c.92
mov ebp, dword [esp]
mov dword [ebp], 0
jmp case.0x44ed4c.92
mov ecx, eax
shl ecx, 8
add ecx, edx
cmp ecx, 0x168
jg 0x44f1e3
lea edx, [ecx - 0x40]
cmp edx, 0x38
ja case.default.0x44edec
jmp dword [edx*4 + 0x496ae0]
test byte [esi + 1], 0x20
je 0x44f460
mov eax, dword [esi + 0x184]
mov ecx, dword [esi + 0x12c]
cmp eax, ecx
cmova eax, ecx
mov dword [esi + 0x184], eax
lea edx, [eax - 1]
test eax, eax
cmove edx, eax
mov ebx, dword [esi + 0x94]
xor eax, eax
mov edi, dword [esi + 0x128]
test edx, edx
cmovs edx, eax
cmp edx, ecx
lea ecx, [ecx - 1]
cmovl ecx, edx
test ebx, ebx
cmovs ebx, eax
mov dword [esi + 0x98], ecx
cmp ebx, edi
lea edi, [edi - 1]
cmovl edi, ebx
mov dword [esi + 0x94], edi
mov byte [esi + 0xae], al
mov byte [esi + 0x142], 1
cmp byte [esi + 0x106d], al
jne case.0x44ed4c.92
jmp 0x44f0ad
dec eax
mov dword [esi + 0x98], eax
mov byte [esi + 0x142], 1
jmp 0x44f0a0
cmp eax, 0x2547
je 0x44ef2d
cmp eax, 0x2830
je 0x44f39e
cmp eax, 0x2841
jne case.0x44ed4c.92
test byte [esi], 2
je 0x44f460
cmp byte [esi + 0x10eb], 0
jne case.0x44ed4c.92
mov dword [esi + 0x154], 0xdb00
jmp case.0x44ed4c.92
cmp eax, 0x2941
je 0x44f3c3
cmp eax, 0x2942
je 0x44f3e8
cmp eax, 0x2955
jne case.0x44ed4c.92
test byte [esi + 1], 0x40
je 0x44f460
cmp byte [esi + 0x10eb], 0
jne case.0x44ed4c.92
mov dword [esi + 0x158], 0xda00
jmp case.0x44ed4c.92
cmp edx, 0x57
jne case.0x44e2f5.58
mov dword [esi + 0xe18], 4
mov byte [esi + 0xa11], 1
jmp case.0x44ed4c.92
test byte [esi + 1], 0x40
je 0x44f460
cmp byte [esi + 0x10eb], 0
jne case.0x44ed4c.92
mov byte [esi + 0xd5], 1
jmp case.0x44ed4c.92
mov ecx, edi
mov dword [ecx], eax
mov dword [esi + 0x2c], eax
inc dword [esi + 0x30]
mov eax, dword [edi]
test eax, eax
jne 0x44ef65
jmp 0x44ef8f
dec dword [esi + 0x30]
mov ecx, ebp
sub ecx, dword [esi + 0x10c0]
cmp dword [eax + 4], ecx
jae 0x44ef8f
mov ecx, dword [eax]
mov dword [edi], ecx
push eax
call fcn.00410c0e
add esp, 4
mov eax, dword [edi]
test eax, eax
jne 0x44ef62
mov dword [esi + 0x2c], 0
dec dword [esi + 0x30]
cmp byte [esi + 0x10b4], 0
je 0x44efc4
cmp byte [esi + 0x34], 0
je 0x44efb5
mov eax, ebp
sub eax, dword [esi + 0x38]
cmp eax, dword [esi + 0x10bc]
jb 0x44f094
mov byte [esi + 0x34], 0
jmp 0x44efc4
mov eax, dword [esi + 0x30]
cmp eax, dword [esi + 0x10b8]
jge 0x44f090
mov dword [esi + 0x38], ebp
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 0x44f097
mov byte [esi + 0x135], 1
push esi
push 0x452601
push 0x64
call fcn.004549b4
add esp, 0xc
mov dword [esi + 0x138], eax
jmp 0x44f097
cmp dword [esi + 0x204], 1
jne case.0x44e2f5.58
cmp dword [esi + 0x184], 4
jne case.0x44e2f5.58
mov dword [esi + 0x204], 2
mov dword [esi + 0x188], 0
jmp case.0x44ed4c.92
cmp dword [esi + 0x184], 2
jne case.0x44e2f5.58
mov dword [esi + 0x184], 1
jmp case.0x44ed4c.92
mov dword [esi + 0xe18], 7
mov dword [esi + 0x20c], 0
jmp case.0x44ed4c.92
mov dword [esi + 0xe18], 6
jmp 0x44f058
mov eax, dword [esi + 0x1058]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x5c]
add esp, 4
push esi
call fcn.0044be4c
add esp, 4
jmp 0x44e99a
mov byte [esi + 0x34], 1
mov dword [esi + 0x38], ebp
mov byte [esi + 0x142], 1
mov ebp, ebx
cmp byte [esi + 0x106d], 0
jne case.0x44ed4c.92
mov byte [esi + 0x106d], 1
push esi
push 0x452601
push 0x14
call fcn.004549b4
add esp, 0xc
mov dword [esi + 0x1070], eax
jmp case.0x44ed4c.92
test byte [esi], 2
je 0x44f460
xor edx, edx
mov ecx, esi
call fcn.00453fbc
jmp 0x44f1ca
test byte [esi], 2
je 0x44f460
mov byte [esi + 0x13d], 1
jmp case.0x44ed4c.92
test byte [esi], 2
je 0x44f460
mov byte [esi + 0x13d], 0
jmp case.0x44ed4c.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.0x44ed4c.92
test byte [esi + 1], 0x40
je 0x44f460
mov dword [esi + 0xe18], 3
mov dword [esi + 0x184], 0
mov dword [esi + 0x204], 1
jmp case.0x44ed4c.92
test byte [esi], 2
je 0x44f460
xor edx, edx
mov ecx, esi
inc edx
call fcn.00449f1e
mov eax, dword [esi + 0x1054]
test eax, eax
je 0x44f18a
push eax
call fcn.0040e671
add esp, 4
cmp byte [esi + 0xc5], 0
je 0x44f1ba
cmp byte [esi + 0x10ec], 0
jne 0x44f1b3
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 0x44f1ca
mov dword [esi + 0x10], 0
mov byte [esi + 0x142], 1
cmp byte [esi + 0x106d], 0
jne case.0x44ed4c.92
jmp 0x44f83f
cmp ecx, 0x3d42
jle 0x44f861
lea eax, [ecx - 0x3d43]
cmp eax, 9
ja case.default.0x44f1fe
jmp dword [eax*4 + 0x496bc4]
test byte [esi + 1], 0x10
je 0x44edc1
cmp dword [esi + 0x204], 2
jl case.0x44ed4c.92
mov eax, dword [esi + 0x184]
cmp eax, dword [esi + 0x188]
ja case.0x44e437.102
jmp case.0x44e437.101
test byte [esi], 2
je 0x44f460
mov eax, dword [esi + 0x128]
test eax, eax
jle 0x44f2ca
xor edx, edx
mov ecx, esi
mov dword [esp + 0x10], edx
push 1
push 0xe46
call fcn.0044aeda
add esp, 8
mov edi, eax
mov eax, dword [esi + 0x12c]
cmp eax, dword [edi + 4]
je 0x44f281
mov ecx, esi
mov edx, edi
push eax
call fcn.00452365
add esp, 4
mov eax, dword [esi + 0x12c]
mov esi, dword [esp + 8]
test eax, eax
jle 0x44f2b3
xor ebx, ebx
xor ebp, ebp
mov ecx, edi
mov edx, ebp
push dword [esp + 0x1c]
call fcn.00452252
add esp, 4
mov eax, dword [edi + 0x14]
inc ebp
mov dword [eax + ebx], 0x45
add ebx, 0x14
cmp ebp, dword [esi + 0x12c]
jl 0x44f28d
mov edx, dword [esp + 0x10]
mov word [edi], 0
mov ebp, dword [esp]
mov eax, dword [esi + 0x128]
inc edx
cmp edx, eax
jl 0x44f24c
cmp byte [esi + 0x10f9], 0
je 0x44f2da
mov dword [esi + 0x10], 0
mov byte [esi + 0x142], 1
cmp byte [esi + 0x106d], 0
jne 0x44f30d
mov byte [esi + 0x106d], 1
push esi
push 0x452601
push 0x14
call fcn.004549b4
add esp, 0xc
mov dword [esi + 0x1070], eax
mov eax, dword [esi + 0x128]
xor edx, edx
cmp dword [esi + 0xe34], edx
setg cl
cmp dword [esi + 0xe30], edx
setg dl
je 0x44f325
mov ecx, edx
cmp cl, 1
jne case.0x44ed4c.92
cmp dword [esi + 0xe2c], 0
sets cl
cmp dword [esi + 0xe28], eax
setl al
je 0x44f345
mov ecx, eax
cmp cl, 1
jne case.0x44ed4c.92
jmp 0x44f79c
test byte [esi], 2
je 0x44f460
cmp byte [esi + 0x10eb], 0
jne case.0x44ed4c.92
mov dword [esi + 0x154], 0xd800
jmp case.0x44ed4c.92
test byte [esi + 1], 0x40
je 0x44f460
cmp byte [esi + 0x10eb], 0
jne case.0x44ed4c.92
mov dword [esi + 0x154], 0xda00
jmp case.0x44ed4c.92
test byte [esi], 2
je 0x44f460
cmp byte [esi + 0x10eb], 0
jne case.0x44ed4c.92
mov dword [esi + 0x154], 0xd900
jmp case.0x44ed4c.92
test byte [esi], 2
je 0x44f460
cmp byte [esi + 0x10eb], 0
jne case.0x44ed4c.92
mov dword [esi + 0x158], 0xdb00
jmp case.0x44ed4c.92
test byte [esi], 2
je 0x44f460
cmp byte [esi + 0x10eb], 0
jne case.0x44ed4c.92
mov dword [esi + 0x158], 0xd800
jmp case.0x44ed4c.92
test byte [esi], 2
je 0x44f460
mov dword [esi + 0x98], 0
mov eax, dword [esi + 0x94]
cmp eax, dword [esi + 0xa8]
jne 0x44f7ea
mov edx, dword [esi + 0xa4]
xor edi, edi
mov ecx, esi
inc edi
push edi
push edi
push eax
jmp 0x44f81c
test byte [esi], 2
je 0x44f460
mov eax, dword [esi + 0xe14]
mov ecx, dword [esi + 0x98]
mov byte [eax + ecx], 1
jmp case.0x44ed4c.92
test byte [esi], 2
jne 0x44f7fe
mov dword [ebp], 0
jmp case.0x44ed4c.92
mov byte [esi + 0x13d], 1
jmp case.0x44ed4c.92
mov byte [esi + 0x13d], 0
jmp case.0x44ed4c.92
mov eax, dword [esi + 0x94]
mov edx, dword [esi + 0x98]
mov ecx, esi
dec eax
push 1
jmp 0x44f4aa
mov eax, dword [esi + 0x94]
mov edx, dword [esi + 0x98]
mov ecx, esi
inc eax
xor edi, edi
inc edi
push edi
push eax
jmp 0x44f4cd
mov edx, dword [esi + 0x98]
mov ecx, esi
inc edx
xor eax, eax
inc eax
push eax
jmp 0x44f4c7
mov edx, dword [esi + 0x98]
mov ecx, esi
dec edx
push 1
push dword [esi + 0x94]
call fcn.00453894
jmp 0x44f71b
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
xor edx, edx
mov ecx, esi
mov dword [esi + 0x94], eax
mov byte [esi + 0xae], bl
push 1
push ebx
call fcn.00451c34
add esp, 8
cmp byte [esi + 0x10f9], bl
mov ebp, dword [esp]
jne 0x44f6e6
jmp case.0x44ed4c.92
mov dword [esi + 0xb0], 0
mov dword [esi + 0x154], 0xd900
jmp case.0x44ed4c.92
mov dword [esi + 0xb0], 0
mov dword [esi + 0x154], 0xd800
jmp case.0x44ed4c.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 0x44f597
mov eax, dword [esi + 0x94]
test eax, eax
je 0x44f8da
jle 0x44e4fc
dec eax
mov dword [esi + 0x94], eax
jmp 0x44e4fc
xor edx, edx
mov ecx, esi
push 1
push 0
jmp 0x44f6d5
xor edx, edx
mov ecx, esi
inc edx
push 1
push 0
jmp 0x44f716
mov edx, dword [esi + 0x94]
mov eax, dword [esi + 0xa8]
cmp edx, eax
jg case.0x44ed4c.92
mov ecx, esi
push 0
push 0xffffffffffffffff
jmp 0x44f5f4
mov edx, dword [esi + 0x94]
mov eax, dword [esi + 0xa8]
cmp edx, eax
jg case.0x44ed4c.92
xor edi, edi
mov ecx, esi
inc edi
push edi
push edi
push eax
call fcn.00451eb0
jmp 0x44e980
xor eax, eax
mov edx, dword [esp + 4]
mov byte [esi + 0xd4], al
mov dword [esi + 0x40], 0x20500
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], eax
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi + 0x10]
mov dword [edx + 0x10], ecx
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
mov esi, dword [esp + 8]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
cmp byte [esi + 0xc6], al
je case.0x44ed4c.92
mov dword [esi + 0x70], 0x20500
mov dword [esi + 0x78], 0
jmp case.0x44ed4c.92
mov eax, dword [esp + 0xc]
or byte [eax + 2], 8
jmp case.0x44ed4c.92
mov byte [esi + 0xd4], 0
and byte [esi + 0x42], 0xfb
jmp case.0x44ed4c.92
mov byte [esi + 0xd4], 1
or byte [esi + 0x42], 4
jmp case.0x44ed4c.92
mov eax, dword [esp + 0xc]
and byte [eax + 2], 0xf7
jmp case.0x44ed4c.92
mov dword [ebp], 0xa
jmp case.0x44ed4c.92
mov eax, dword [esi + 0x1054]
test eax, eax
je case.0x44ed4c.92
push 0
push 3
push 0x4a690f
push eax
call fcn.0040e6dd
add esp, 0x10
jmp case.0x44ed4c.92
mov dword [ebp], 0xc
jmp case.0x44ed4c.92
mov dword [ebp], 0xd
jmp case.0x44ed4c.92
xor edx, edx
mov ecx, esi
push 0
push 1
call fcn.00451c34
add esp, 8
cmp byte [esi + 0x10f9], 0
je case.0x44ed4c.92
mov dword [esi + 0x10], 0
jmp case.0x44ed4c.92
xor edx, edx
mov ecx, esi
inc edx
push edx
push edx
call fcn.00451c34
add esp, 8
mov dword [esi + 0x98], 0
jmp 0x44e4fc
xor edx, edx
mov ecx, esi
inc edx
push 0
push 1
call fcn.00451c34
add esp, 8
cmp dword [esi + 0xe1c], 0
je 0x44def2
mov ecx, dword [esi + 0x98]
mov edi, dword [esi + 0x12c]
xor eax, eax
mov edx, dword [esi + 0x94]
cmp edi, ecx
sete byte [esp + 0x10]
cmp dword [esi + 0xe34], ecx
setg bh
cmp dword [esi + 0xe30], edx
setg bl
je 0x44f75c
mov bh, bl
mov ebp, dword [esp]
cmp bh, 1
jne 0x44def2
mov bl, byte [esp + 0x10]
mov al, bl
add eax, edx
cmp edi, ecx
lea ecx, [ecx + 1]
mov edi, 0
cmove ecx, edi
cmp dword [esi + 0xe2c], ecx
setl cl
cmp dword [esi + 0xe28], eax
setl al
je 0x44f793
mov ecx, eax
cmp cl, 1
jne 0x44def2
xor ecx, ecx
mov dword [esi + 0xe1c], ecx
mov eax, dword [esp + 0x18]
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ecx
jmp 0x44def2
mov eax, dword [esp + 0xc]
or byte [eax + 2], 0x10
jmp case.0x44ed4c.92
mov eax, dword [esp + 0xc]
and byte [eax + 2], 0xef
jmp case.0x44ed4c.92
mov byte [esi + 0xad], 1
jmp case.0x44ed4c.92
mov byte [esi + 0xad], 0
jmp case.0x44ed4c.92
mov ecx, dword [esi + 0x128]
dec ecx
cmp eax, ecx
jge 0x44f824
inc eax
mov dword [esi + 0x94], eax
jmp 0x44f824
mov edx, dword [esi + 0x94]
cmp edx, dword [esi + 0xa4]
jne 0x44f8f9
mov ecx, esi
push 1
push 0xffffffffffffffff
push dword [esi + 0xa8]
call fcn.00451eb0
add esp, 0xc
xor eax, eax
mov byte [esi + 0xae], al
mov byte [esi + 0x142], 1
cmp byte [esi + 0x106d], al
jne case.0x44ed4c.92
mov byte [esi + 0x106d], 1
push esi
push 0x452601
push 0x14
call fcn.004549b4
add esp, 0xc
mov dword [esi + 0x1070], eax
jmp case.0x44ed4c.92
cmp ecx, 0x226f
jle 0x44f94b
cmp ecx, 0x2270
je 0x44fcc3
cmp ecx, 0x247c
je 0x44fcf2
cmp ecx, 0x2a7c
jne case.0x44ed4c.92
test byte [esi], 0x40
je 0x44edc1
cmp dword [esi + 0x204], 1
jne case.0x44ed4c.92
mov eax, dword [esi + 0x184]
test eax, eax
je case.0x44ed4c.92
cmp byte [esi + 0x10ec], 0
jne 0x44f79c
mov ecx, dword [esi + 0x1058]
mov edx, dword [ecx]
push eax
push dword [esi + 0x12c]
push ecx
call dword [edx + 0x34]
jmp 0x44fd3a
mov eax, dword [esi + 0x128]
mov ecx, esi
dec eax
xor edi, edi
xor edx, edx
dec edi
push 1
push edi
push eax
call fcn.00451eb0
add esp, 0xc
jmp 0x44e4fc
test edx, edx
jle 0x44f824
dec edx
mov dword [esi + 0x94], edx
jmp 0x44f824
cmp ecx, 0x3d63
je 0x44fd42
cmp ecx, 0x3e63
jne case.0x44ed4c.92
test byte [esi + 1], 0x40
je 0x44f460
mov eax, dword [esi + 0x1054]
test eax, eax
je case.0x44ed4c.92
push 0
push 0xb
push str.e__0_136_0c
jmp 0x450be0
cmp ecx, 0x169
je case.0x44edec.105
cmp ecx, 0x16c
jne case.0x44ed4c.92
test byte [esi], 2
je 0x44f460
cmp dword [esi + 0x204], 0
jle case.0x44ed4c.92
mov edx, dword [esi + 0x184]
mov ecx, esi
push 0
push eax
call fcn.00454490
add esp, 8
cmp dword [esi + 0x204], 2
jl case.0x44ed4c.92
mov edi, 0x62
mov edx, dword [esi + edi*4]
mov ecx, esi
push 0
push dword [esi + 0x208]
call fcn.00454490
add esp, 8
lea eax, [edi + 1]
add edi, 0xffffffa0
cmp edi, dword [esi + 0x204]
mov edi, eax
jl 0x44f99a
jmp case.0x44ed4c.92
test byte [esi], 2
je 0x44f460
cmp dword [esi + 0x204], 1
jne case.0x44ed4c.92
mov eax, dword [esi + 0x184]
cmp eax, 5
jne 0x450c65
push 0x84
push dword [esi + 0x1068]
call fcn.004031d2
add esp, 8
cmp byte [eax], 0
je 0x450c5f
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 + 0x28]
call fcn.00456764
add esp, 4
push edi
call fcn.0046aa2f
add esp, 4
mov dword [esi + 0x100], eax
jmp case.0x44ed4c.92
cmp dword [esi + 0x204], 1
jg 0x44fa56
mov dword [esi + 0x188], 0
mov eax, dword [esi + 0x184]
mov ecx, dword [esi + 0x128]
mov edx, dword [esi + 0x12c]
cmp eax, ecx
cmova eax, ecx
mov dword [esi + 0x184], eax
mov ecx, dword [esi + 0x188]
cmp ecx, edx
cmova ecx, edx
mov dword [esi + 0x188], ecx
movzx edx, byte [esi + 0xac]
test edx, edx
lea edi, [edx + edx]
je 0x450704
mov edx, dword [esi + 0xa4]
jmp 0x450706
cmp ecx, 0x168
jne case.0x44ed4c.92
test byte [esi], 2
je 0x44f460
cmp dword [esi + 0x204], 0
jle case.0x44ed4c.92
mov edx, dword [esi + 0x184]
mov ecx, esi
push 1
push eax
call fcn.00454490
add esp, 8
cmp dword [esi + 0x204], 2
jl case.0x44ed4c.92
mov edi, 0x62
mov edx, dword [esi + edi*4]
xor eax, eax
mov ecx, esi
inc eax
push eax
push dword [esi + 0x208]
call fcn.00454490
add esp, 8
lea eax, [edi + 1]
add edi, 0xffffffa0
cmp edi, dword [esi + 0x204]
mov edi, eax
jl 0x44fae8
jmp case.0x44ed4c.92
test byte [esi + 1], 0x10
je 0x44edc1
mov ecx, esi
mov byte [esi + 0xc9], 0
call fcn.0044ad79
cmp dword [esi + 0x184], 0
mov eax, dword [esi + 0x40]
je 0x450bc7
or eax, 0x200000
jmp 0x450bcc
test byte [esi + 1], 0x10
je 0x44edc1
cmp dword [esi + 0x184], 0
setne byte [esi + 0xc9]
jmp 0x44e451
test byte [esi + 1], 0x10
je 0x44edc1
mov ecx, dword [esi + 0x184]
cmp ecx, 0xf
ja case.0x44ed4c.92
mov eax, ecx
and ecx, 8
mov edi, 0xfffffe00
and eax, 7
movsx eax, byte [eax + 0x496630]
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 + 0x1c]
mov edx, dword [esp + 4]
mov ecx, dword [esi + 0x10]
mov dword [edx + 0x10], ecx
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
mov esi, dword [esp + 8]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
cmp byte [esi + 0xc6], 0
je case.0x44ed4c.92
and eax, 0x3ffff
jmp 0x44fcbb
test byte [esi + 1], 0x10
je 0x44edc1
mov ecx, dword [esi + 0x184]
cmp ecx, 0xf
ja case.0x44ed4c.92
mov eax, ecx
and ecx, 8
mov edi, 0xfffc01ff
and eax, 7
movsx eax, byte [eax + 0x496630]
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 + 0x1c]
mov edx, dword [esp + 4]
mov ecx, dword [esi + 0x10]
mov dword [edx + 0x10], ecx
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
mov esi, dword [esp + 8]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
cmp byte [esi + 0xc6], 0
je case.0x44ed4c.92
and eax, 0x3ffff
mov dword [esi + 0x70], eax
jmp 0x44f64b
test byte [esi + 1], 0x10
je 0x44edc1
cmp dword [esi + 0x184], 0
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 4]
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.0x44ed4c.92
mov eax, dword [esi + 0x40]
mov ecx, 0x3ffff
and eax, ecx
mov dword [esi + 0x70], eax
jmp 0x44e5b6
mov eax, dword [esi + 0x184]
cmp eax, 0x29
jle 0x45076d
cmp eax, 0x3c
jg 0x450b63
cmp eax, 0x2a
je 0x450bfd
cmp eax, 0x32
je 0x450ca5
jmp 0x450c26
test byte [esi + 1], 1
je 0x44edc1
cmp dword [esi + 0x204], 1
jg case.0x44ed4c.92
cmp byte [esi + 0x10ec], 0
jne 0x44f79c
mov ecx, dword [esi + 0x184]
mov eax, dword [esi + 0x128]
test ecx, ecx
jne 0x44fd2c
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 0x44f79c
test byte [esi + 1], 0x10
je 0x44edc1
mov eax, dword [esi + 0x184]
cmp eax, 2
je 0x450c39
cmp eax, 1
je 0x450c4c
test eax, eax
jne case.0x44ed4c.92
mov byte [esi + 0xc4], 0
jmp case.0x44ed4c.92
test byte [esi], 8
je 0x44f460
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 0x45006d
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
push eax
jmp 0x45045a
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 0x45045a
test byte [esi + 1], 0x20
je 0x44f460
mov eax, dword [esi + 0x128]
mov ecx, dword [esi + 0x184]
cmp ecx, eax
mov dword [esp + 0x10], 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 + 0x10]
cmovg ebx, edx
mov edx, dword [esp]
test ebx, ebx
cmovs ebx, ecx
cmp ebx, eax
lea eax, [eax - 1]
cmovl eax, ebx
mov ebp, edx
jmp 0x44ff23
test byte [esi + 1], 0x20
je 0x44f460
mov eax, dword [esi + 0x128]
mov ecx, dword [esi + 0x184]
cmp ecx, eax
mov dword [esp + 0x10], 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 + 0x10]
cmovg ebx, ebp
mov ebp, dword [esp]
test ebx, ebx
cmovs ebx, ecx
cmp ebx, eax
lea eax, [eax - 1]
cmovl eax, ebx
mov dword [esi + 0x94], eax
mov byte [esi + 0xae], cl
mov byte [esi + 0x142], 1
cmp byte [esi + 0x106d], cl
jne case.0x44ed4c.92
jmp 0x44f0ad
mov eax, dword [esi + 0x184]
cmp eax, 3
jne 0x450733
cmp byte [esi + 0x10ee], 0
jne 0x450754
push esi
call fcn.0044ae12
add esp, 4
jmp 0x450754
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.00451c34
add esp, 8
mov al, 1
mov byte [esi + 0x142], al
jmp 0x44f0a0
test byte [esi], 8
je 0x44f460
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 0x44ee75
mov edi, ecx
neg edi
cmp ecx, 1
mov ecx, esi
sbb ebx, ebx
or ebx, edi
xor edi, edi
push edi
push ebx
mov ebp, dword [esp + 8]
jmp 0x450032
test byte [esi], 8
je 0x44f460
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 0x44ee75
xor edi, edi
inc edi
test ecx, ecx
cmovne edi, ecx
mov ecx, esi
push 1
push edi
push eax
call fcn.00451eb0
add esp, 0xc
jmp 0x44ee75
test byte [esi], 8
je 0x44f460
mov eax, dword [esi + 0x12c]
mov ecx, dword [esi + 0x184]
cmp ecx, eax
cmova ecx, eax
mov eax, ecx
mov dword [esi + 0x184], ecx
neg eax
cmp ecx, 1
mov ecx, esi
sbb edx, edx
or edx, eax
call fcn.00454101
jmp 0x44ee75
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 0x44f460
mov edx, dword [esi + 0xa4]
xor edi, edi
mov ecx, esi
inc edi
test eax, eax
cmovne edi, eax
push 1
push edi
jmp 0x4500e5
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 0x44edc1
mov ecx, eax
mov edx, dword [esi + 0xa4]
neg ecx
xor edi, edi
inc edi
cmp eax, edi
sbb eax, eax
or eax, ecx
mov ecx, esi
push edi
push eax
push dword [esi + 0xa8]
call fcn.00451eb0
add esp, 0xc
jmp 0x44eb6e
test byte [esi], 1
je 0x44edc1
mov eax, dword [esi + 0x184]
mov ecx, dword [esi + 0x12c]
cmp eax, ecx
cmova eax, ecx
xor edi, edi
mov ecx, esi
mov dword [esi + 0x184], eax
inc edi
test eax, eax
cmovne edi, eax
mov eax, dword [esi + 0x98]
mov edx, dword [esi + 0x94]
mov dword [esp + 0x40], eax
push 1
push 0x1180
call fcn.0044aeda
add esp, 8
mov cl, byte [eax + 0x18]
mov dword [esp + 0x10], eax
cmp cl, byte [esi + 0x10a0]
je 0x450168
mov edx, dword [esp + 0x10]
mov ecx, esi
call fcn.00452321
mov al, byte [esi + 0x10a0]
mov ecx, dword [esp + 0x10]
mov byte [ecx + 0x18], al
mov ebx, dword [esi + 0x12c]
mov edx, dword [esi + 0x98]
mov ebp, dword [esi + 0x94]
mov ecx, esi
mov dword [esp + 0x3c], ebx
sub ebx, edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x38], ebp
cmp edi, ebx
cmovle ebx, edi
push ebp
call fcn.00452183
add esp, 4
mov edx, dword [esi + 0x98]
mov ecx, esi
mov dword [esp + 0x44], ebx
add edx, ebx
push dword [esi + 0x94]
call fcn.00452183
add esp, 4
mov eax, dword [esi + 0xe34]
mov ecx, dword [esi + 0xe30]
cmp eax, dword [esi + 0x98]
setg al
cmp ecx, dword [esi + 0x94]
setg cl
je 0x4501d6
mov eax, ecx
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x44]
cmp al, 1
jne 0x45021a
lea eax, [ebx + edx]
mov ecx, dword [esp + 0x38]
cmp dword [esi + 0xe2c], eax
setl al
cmp dword [esi + 0xe28], ecx
setl cl
je 0x4501ff
mov eax, ecx
cmp al, 1
jne 0x45021a
mov ecx, dword [esp + 0x18]
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
test ebx, ebx
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x10]
je 0x450724
dec edx
not edi
sub edx, dword [esp + 0x3c]
cmp edx, edi
cmovge edi, edx
inc edi
mov edx, ebx
inc ebx
mov ecx, ebp
push eax
call fcn.00452252
mov eax, dword [esp + 8]
add esp, 4
inc edi
jne 0x45023b
jmp 0x450724
test byte [esi + 1], 0x40
je 0x44edc1
mov edx, dword [esi + 0x184]
mov eax, dword [esi + 0x12c]
cmp edx, eax
cmova edx, eax
xor edi, edi
mov dword [esi + 0x184], edx
inc edi
test edx, edx
mov ecx, dword [esi + 0x98]
mov eax, dword [esi + 0x94]
cmovne edi, edx
test edi, edi
mov edx, ecx
jle 0x4502d4
mov edx, ecx
test edx, edx
jle 0x4502d4
lea ebx, [edx - 1]
cmp edx, 1
mov edx, 0
mov dword [esi + 0x98], ebx
je 0x4502c9
mov edx, dword [esi + 0xe14]
cmp byte [edx + ebx], 0
jne 0x4502c7
lea edx, [ebx - 1]
cmp ebx, 2
mov ebx, edx
mov dword [esi + 0x98], edx
jge 0x4502a9
jmp 0x4502c9
mov edx, ebx
mov ebp, dword [esp]
cmp edi, 1
lea edi, [edi - 1]
jg 0x450292
cmp dword [esi + 0xe34], ecx
setg cl
cmp dword [esi + 0xe30], eax
setg ch
je 0x4502ea
mov cl, ch
cmp cl, 1
jne case.0x44ed4c.92
cmp dword [esi + 0xe2c], edx
setl cl
cmp dword [esi + 0xe28], eax
setl al
je 0x450309
mov ecx, eax
cmp cl, 1
je 0x450685
jmp case.0x44ed4c.92
test byte [esi + 1], 0x20
je 0x44f460
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 0x450457
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.0x44ed4c.92
test eax, eax
je case.0x44ed4c.92
mov ecx, esi
call fcn.0045391f
cmp dword [esi + 0x184], 2
jb case.0x44ed4c.92
xor edi, edi
inc edi
mov edx, dword [esi + 0x1064]
mov ecx, esi
call fcn.0045391f
inc edi
cmp edi, dword [esi + 0x184]
jb 0x45039e
jmp case.0x44ed4c.92
test byte [esi], 2
je 0x44f460
mov edi, dword [esi + 0x1054]
test edi, edi
je case.0x44ed4c.92
mov eax, dword [esp + 0x20]
cmp byte [eax], 0
jne 0x44ed77
jmp case.0x44ed4c.92
test byte [esi + 1], 0x20
je 0x44f460
mov ecx, dword [esi + 0x128]
mov eax, dword [esi + 0x184]
cmp eax, ecx
cmova eax, ecx
mov dword [esi + 0x184], eax
movzx ecx, byte [esi + 0xac]
test ecx, ecx
lea edi, [ecx + ecx]
je 0x450be6
mov ecx, dword [esi + 0xa4]
jmp 0x450be8
test byte [esi + 1], 0x20
je 0x44f460
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.00453894
add esp, 8
jmp 0x44ee75
test byte [esi], 2
je 0x44f460
cmp dword [esi + 0x204], 1
jne case.0x44ed4c.92
mov eax, dword [esi + 0x184]
test eax, eax
je 0x450c87
cmp eax, 3
jne case.0x44ed4c.92
cmp dword [esi + 0x12c], 0
jle case.0x44ed4c.92
xor eax, eax
mov ecx, dword [esi + 0xe14]
mov byte [ecx + eax], 0
inc eax
cmp eax, dword [esi + 0x12c]
jl 0x4504a3
jmp case.0x44ed4c.92
mov eax, dword [esi + 0x204]
mov edx, dword [esp + 4]
test eax, eax
jle 0x450b24
xor edi, edi
jmp 0x450a85
mov eax, dword [esi + 0x1054]
test eax, eax
je case.0x44ed4c.92
mov ecx, dword [esi + 0x184]
cmp ecx, 5
je 0x450bd7
cmp ecx, 6
jne case.0x44ed4c.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 eax, [esp + 0x68]
mov edi, eax
push eax
call fcn.00403cd8
add esp, 0x10
push edi
call fcn.0047f0f0
add esp, 4
push 0
push eax
push edi
push dword [esi + 0x1054]
jmp 0x44ed89
test byte [esi], 2
je 0x44f460
mov ecx, dword [esi + 0x204]
cmp ecx, 2
jg case.0x44ed4c.92
mov edx, dword [esi + 0x128]
mov edi, dword [esi + 0x184]
mov ebp, dword [esp]
cmp edi, edx
cmova edi, edx
mov dword [esi + 0x184], edi
lea eax, [edi - 1]
mov ebx, dword [esi + 0x188]
cmp ebx, edx
cmova ebx, edx
test edi, edi
cmove eax, edi
test ebx, ebx
mov dword [esi + 0x188], ebx
cmove ebx, edx
cmp ecx, 2
lea ecx, [edx - 1]
cmovne ebx, edx
dec ebx
cmp ebx, edx
cmovl ecx, ebx
cmp ecx, eax
jle case.0x44ed4c.92
mov dword [esi + 0xa4], eax
mov dword [esi + 0xa8], ecx
xor ecx, ecx
mov dword [esi + 0x98], ecx
cmp byte [esi + 0xac], cl
cmove eax, ecx
mov dword [esi + 0x94], eax
jmp 0x44ff2f
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.0x44ed4c.92
mov eax, dword [esi + 0x204]
cmp eax, 1
jg 0x450b8e
mov ecx, dword [esi + 0x184]
lea edx, [ecx - 1]
cmp edx, 0x17
jb 0x450b86
test byte [esi + 1], 1
je 0x44f460
cmp byte [esi + 0x10ec], 0
jne 0x450685
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 + 0x18]
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov dword [ecx + 0xc], eax
mov dword [ecx + 8], eax
jmp 0x44def2
xor edx, edx
mov ecx, esi
call fcn.00453fbc
jmp 0x44ee75
test byte [esi], 2
je 0x44edc1
mov edi, dword [esi + 0x1054]
test edi, edi
je case.0x44ed4c.92
mov ebx, dword [esi + 0x184]
cmp ebx, 1
ja 0x4506fc
push 0x15
push str.e_2_1_1_112_112_1_0x
lea eax, [esp + 0x64]
mov ebp, eax
push eax
call fcn.004720b0
add esp, 0xc
add bl, 0x32
mov byte [esp + 0x5e], bl
push 0
push 0x14
push ebp
push edi
call fcn.0040e6dd
add esp, 0x10
mov ebp, dword [esp]
jmp case.0x44ed4c.92
xor edx, edx
lea ebx, [eax - 1]
test eax, eax
cmove ebx, eax
add ebx, edx
lea edx, [ecx - 1]
test ecx, ecx
cmove edx, ecx
mov ecx, esi
push edi
push ebx
call fcn.00453894
add esp, 8
mov byte [esi + 0x142], 1
mov ebp, dword [esp]
jmp 0x44f0a0
inc eax
xor ecx, ecx
cmp eax, 3
cmova eax, ecx
xor edx, edx
mov ecx, esi
mov edi, eax
and eax, 2
and edi, 1
shr eax, 1
push edi
push eax
call fcn.00451c34
add esp, 8
cmp byte [esi + 0x10f9], 0
je 0x44ee75
mov dword [esi + 0x10], 0
jmp 0x44ee75
test eax, eax
je 0x450783
cmp eax, 0x28
je 0x450c08
cmp eax, 0x29
jne 0x450c26
mov dword [esi], 0xffff
jmp case.0x44ed4c.92
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 0x450b17
test byte [esi], 4
je 0x45090c
mov ecx, dword [esp + 0xc]
or byte [ecx + 2], 4
jmp case.0x450a95.3
test byte [esi + 1], 0x40
je 0x45090c
mov ecx, dword [esp + 0xc]
or byte [ecx + 3], 1
jmp case.0x450a95.3
test byte [esi], 4
je 0x45090c
mov ecx, dword [esp + 0xc]
or byte [ecx + 2], 0x20
jmp case.0x450a95.3
test byte [esi + 1], 0x10
je 0x45090c
mov byte [esi + 0xc9], 0
or byte [esi + 0x42], 0x20
mov ecx, esi
call fcn.0044ad79
mov edx, dword [esp + 4]
mov eax, dword [esi + 0x204]
jmp case.0x450a95.3
mov ecx, dword [esp + 0xc]
or byte [ecx + 2], 0x10
jmp case.0x450a95.3
test byte [esi + 1], 0x10
je 0x45090c
cmp byte [esi + 0x10eb], 0
jne case.0x450a95.3
mov dword [esi + 0xcc], 0
jmp case.0x450a95.3
test byte [esi + 1], 0x10
je 0x45090c
cmp byte [esi + 0x10eb], 0
jne case.0x450a95.3
mov dword [esi + 0xcc], 1
jmp case.0x450a95.3
test byte [esi + 1], 0x10
je 0x45090c
cmp byte [esi + 0x10eb], 0
jne case.0x450a95.3
mov dword [esi + 0xcc], 2
jmp case.0x450a95.3
test byte [esi + 1], 0x40
je 0x45090c
test byte [esi], 4
je 0x45090c
mov ecx, dword [esp + 0xc]
or byte [ecx + 2], 8
jmp case.0x450a95.3
movzx ecx, word [esi]
test ecx, 0x4010
je 0x45090c
mov ecx, dword [esp + 0xc]
and dword [ecx], 0xfefbffff
jmp case.0x450a95.3
movzx ecx, word [esi]
test ecx, 0x4010
je 0x45090c
mov ecx, dword [esp + 0xc]
and byte [ecx + 2], 0xf7
jmp case.0x450a95.3
movzx ecx, word [esi]
test ecx, 0x4010
je 0x45090c
mov ecx, dword [esp + 0xc]
and byte [ecx + 2], 0xdf
jmp case.0x450a95.3
movzx ecx, word [esi]
test ecx, 0x4010
je 0x45090c
mov ecx, dword [esp + 0xc]
and byte [ecx + 2], 0xef
jmp case.0x450a95.3
mov dword [ebp], 0
jmp case.0x450a95.3
lea ecx, [edi + 2]
cmp ecx, eax
jge 0x4509ca
cmp dword [esi + edi*4 + 0x188], 5
jne 0x4509ca
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 + 4]
mov dword [esi + 0x40], edi
mov dword [esi + 0x48], 0
jmp 0x4509cc
mov byte [esi + 0x48], 0
mov ecx, 0xfffffe00
and ecx, dword [esi + 0x40]
or ecx, 0x100
jmp 0x4509c2
lea ecx, [edi + 2]
cmp ecx, eax
jge 0x450a28
cmp dword [esi + edi*4 + 0x188], 5
jne 0x450a28
mov edx, 0xfffc01ff
and edx, dword [esi + 0x40]
mov dword [esi + 0x40], edx
mov edi, dword [esi + edi*4 + 0x18c]
shl edi, 9
and edi, 0x1fe00
or edi, edx
mov edx, dword [esp + 4]
mov dword [esi + 0x40], edi
mov dword [esi + 0x4c], 0
jmp 0x450a2a
mov byte [esi + 0x4c], 0
mov ecx, 0xfffc01ff
and ecx, dword [esi + 0x40]
or ecx, 0x20400
mov dword [esi + 0x40], ecx
jmp case.0x450a95.3
mov ecx, edi
lea edi, [ecx + 4]
cmp edi, eax
jge 0x450a7e
cmp dword [esi + ecx*4 + 0x188], 2
jne 0x450a7e
mov byte [esi + 0x48], 1
mov ebp, 0x100
xor edx, edx
mov ebx, dword [esi + ecx*4 + 0x18c]
cmp ebx, ebp
jb 0x4509fd
xor ebx, ebx
mov byte [esi + 0x49], bl
mov ebx, dword [esi + ecx*4 + 0x190]
cmp ebx, ebp
jb 0x450a0d
xor ebx, ebx
mov byte [esi + 0x4a], bl
mov ecx, dword [esi + ecx*4 + 0x194]
cmp ecx, ebp
jae 0x450a1d
mov edx, ecx
mov ebp, dword [esp]
mov byte [esi + 0x4b], dl
jmp 0x450b17
mov ecx, edi
lea edi, [ecx + 4]
cmp edi, eax
jge 0x450a7e
cmp dword [esi + ecx*4 + 0x188], 2
jne 0x450a7e
mov byte [esi + 0x4c], 1
mov ebp, 0x100
xor edx, edx
mov ebx, dword [esi + ecx*4 + 0x18c]
cmp ebx, ebp
jb 0x450a53
xor ebx, ebx
mov byte [esi + 0x4d], bl
mov ebx, dword [esi + ecx*4 + 0x190]
cmp ebx, ebp
jb 0x450a63
xor ebx, ebx
mov byte [esi + 0x4e], bl
mov ecx, dword [esi + ecx*4 + 0x194]
cmp ecx, ebp
jae 0x450a73
mov edx, ecx
mov ebp, dword [esp]
mov byte [esi + 0x4f], dl
jmp 0x450b17
mov edi, ecx
jmp case.0x450a95.3
mov ecx, dword [esi + edi*4 + 0x184]
cmp ecx, 0x6b
ja case.0x450a95.3
jmp dword [ecx*4 + 0x496c40]
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 0x450b12
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 0x450b12
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 0x450b12
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 + 4]
inc edi
cmp edi, eax
jl 0x450a85
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x10]
mov dword [edx + 0x10], eax
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
cmp byte [esi + 0xc6], 0
je case.0x44ed4c.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.0x44ed4c.92
cmp eax, 0x3e
je 0x450c13
cmp eax, 0x3d
jne 0x450c26
mov eax, dword [esi]
mov ecx, 0xfffffe00
and eax, ecx
or eax, 0xf
jmp 0x450c1f
test eax, eax
jle case.0x44ed4c.92
mov ecx, dword [esi + 0x184]
dec ecx
cmp ecx, 0x16
ja case.0x44ed4c.92
test byte [esi + 1], 0x40
je 0x44f460
cmp ecx, 0x14
ja case.0x44ed4c.92
jmp dword [ecx*4 + 0x496bec]
mov eax, dword [esi + 0x1058]
mov ecx, dword [eax]
push 0
jmp 0x450d31
and eax, 0xffdfffff
mov ecx, dword [esp + 0xc]
mov dword [ecx], eax
jmp case.0x44ed4c.92
push 0
push 4
push str.e_0n
push eax
jmp 0x44ed89
xor ecx, ecx
mov edx, dword [esi + 0x98]
lea ebx, [eax - 1]
test eax, eax
cmove ebx, eax
add ebx, ecx
jmp 0x450718
mov dword [esi], 0x1001
jmp case.0x44ed4c.92
and dword [esi], 0x1ff
jmp case.0x44ed4c.92
mov eax, dword [esi]
mov ecx, 0xfffffe00
and eax, ecx
or eax, 0x1f
mov dword [esi], eax
jmp case.0x44ed4c.92
lea ecx, [eax - 0x3d]
cmp ecx, 8
ja 0x450c9c
or dword [esi], 0x1ff
jmp case.0x44ed4c.92
mov al, 1
mov byte [esi + 0x143], al
mov byte [esi + 0xc4], al
jmp case.0x44ed4c.92
mov byte [esi + 0x143], 0
mov byte [esi + 0xc4], 1
jmp case.0x44ed4c.92
mov eax, dword [esi + 0x184]
cmp eax, 4
jne case.0x44ed4c.92
cmp byte [esi + 0xe4], 0
je case.0x44ed4c.92
mov ecx, esi
call fcn.0044acae
jmp case.0x44ed4c.92
mov eax, dword [esi + 0xe14]
mov ecx, dword [esi + 0x98]
mov byte [eax + ecx], 0
jmp case.0x44ed4c.92
cmp eax, 0x32
jne case.0x44ed4c.92
mov dword [esi + 0xa12], 0x3f5b1b
cmp dword [esi + 0x204], 2
jl 0x450d0c
xor edi, edi
mov ebx, dword [esp + 0x20]
test edi, edi
je 0x450cd5
push ebx
call fcn.0047f0f0
add esp, 4
mov word [esi + eax + 0xa12], 0x3b
push dword [esi + edi*4 + 0x188]
push 0x49e785
lea eax, [esp + 0x64]
push eax
call fcn.00403cd8
add esp, 0xc
lea eax, [esp + 0x5c]
push eax
push ebx
call fcn.0047edd0
add esp, 8
lea eax, [edi + 1]
add edi, 2
cmp edi, dword [esi + 0x204]
mov edi, eax
jl 0x450cba
push dword [esp + 0x20]
call fcn.0047f0f0
add esp, 4
mov word [esi + eax + 0xa12], 0x63
jmp case.0x44ed4c.92
mov eax, dword [esi + 0x1058]
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x40]
jmp 0x44f71b
cmp eax, 3
jl case.0x44ed4c.92
cmp byte [esi + 0x10ec], 0
jne case.0x44ed4c.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 0x44e980
mov eax, dword [esi + 0x1058]
mov ecx, dword [eax]
push 1
jmp 0x450d83
mov eax, dword [esi + 0x1058]
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x50]
jmp 0x44f71b
mov eax, dword [esi + 0x1058]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x30]
jmp 0x44e265
cmp eax, 3
jl case.0x44ed4c.92
cmp byte [esi + 0x10ec], 0
jne case.0x44ed4c.92
mov eax, dword [esi + 0x188]
test eax, eax
jne 0x450dc7
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10cc]
mov ecx, dword [esp + 8]
mov ecx, dword [ecx + 0x18c]
test ecx, ecx
jne 0x450ddf
mov ecx, dword [esp + 8]
mov ecx, dword [ecx + 0x10d0]
mov esi, dword [esp + 8]
mov edx, dword [esi + 0x1058]
mov edi, dword [edx]
push eax
push ecx
push edx
call dword [edi + 0x34]
add esp, 0xc
jmp 0x4506fc
cmp eax, 2
jl case.0x44ed4c.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.0x44ed4c.92
cmp dword [esi + 0x1054], 0
je case.0x44ed4c.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 0x45052b
cmp dword [esi + 0x1054], 0
je case.0x44ed4c.92
mov eax, dword [esi + 0x1058]
lea edi, [esp + 0x50]
lea ebx, [esp + 0x54]
mov ecx, dword [eax]
push edi
push ebx
push eax
call dword [ecx + 0x60]
add esp, 0xc
lea ebp, [esp + 0x9c]
push dword [edi]
push dword [ebx]
mov edi, esi
mov esi, dword [esp + 8]
push str.e_3__u__ut
push ebp
call fcn.00403cd8
add esp, 0x10
push 0
push eax
push ebp
mov ebp, esi
mov esi, edi
push dword [edi + 0x1054]
jmp 0x44ed89
cmp dword [esi + 0x1054], 0
je case.0x44ed4c.92
mov eax, dword [esi + 0x1058]
lea edi, [esp + 0x50]
lea ebx, [esp + 0x54]
mov ecx, dword [eax]
push edi
push ebx
push eax
call dword [ecx + 0x64]
add esp, 0xc
lea ebp, [esp + 0x9c]
push dword [ebx]
mov ebx, esi
mov esi, dword [esp + 4]
push dword [edi]
push str.e_4__d__dt
push ebp
call fcn.00403cd8
add esp, 0x10
push 0
push eax
push ebp
mov ebp, esi
mov esi, ebx
push dword [ebx + 0x1054]
jmp 0x44ed89
cmp dword [esi + 0x1054], 0
je case.0x44ed4c.92
lea edi, [esp + 0x9c]
push dword [esi + 0x12c]
push dword [esi + 0x128]
push str.e_8__d__dt
push edi
call fcn.00403cd8
add esp, 0x10
jmp 0x450527
mov edi, dword [esi + 0x1054]
test edi, edi
je case.0x44ed4c.92
mov eax, dword [esi + 0x10f4]
test eax, eax
je case.0x44ed4c.92
cmp eax, 2
jne 0x450fbb
mov esi, dword [esp + 8]
mov eax, dword [esi + 0x1058]
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x68]
add esp, 8
mov edi, dword [esi + 0x1054]
mov ebx, eax
jmp 0x450fc1
mov edi, dword [esi + 0x1054]
test edi, edi
je case.0x44ed4c.92
mov eax, dword [esi + 0x10f4]
test eax, eax
je case.0x44ed4c.92
cmp eax, 2
jne 0x450fd8
mov esi, dword [esp + 8]
mov eax, dword [esi + 0x1058]
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x68]
add esp, 8
mov edi, dword [esi + 0x1054]
mov ebx, eax
jmp 0x450fde
mov ebx, dword [0x4b6044]
push ebx
call fcn.0047f0f0
add esp, 4
mov ebp, eax
xor eax, eax
push eax
push 3
push 0x4a71f9
jmp 0x450ff3
mov ebx, dword [0x4b6044]
push ebx
call fcn.0047f0f0
add esp, 4
mov ebp, eax
xor eax, eax
push eax
push 3
push 0x4a308e
push edi
call fcn.0040e6dd
add esp, 0x10
test ebp, ebp
jle 0x451016
push 0
push ebp
push ebx
mov eax, dword [esp + 0x14]
push dword [eax + 0x1054]
call fcn.0040e6dd
add esp, 0x10
push 0
push 2
push 0x4a690c
mov esi, dword [esp + 0x14]
push dword [esi + 0x1054]
call fcn.0040e6dd
add esp, 0x10
jmp 0x4506fc
mov ecx, esi
call fcn.00453036
cmp byte [esi + 0x10dd], 0
je 0x451059
mov eax, dword [esi + 0x105c]
test eax, eax
je 0x451059
push eax
call fcn.0040ef08
add esp, 4
mov ecx, dword [esp + 0x1ec]
xor ecx, esp
call fcn.0046fa9a
add esp, 0x1f0
pop esi
pop edi
pop ebx
pop ebp
ret