Function at 0x44ce30
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48bfb8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xdac
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx]
mov eax, dword [ebp + 8]
xor ecx, ecx
push ebx
xor ebx, ebx
cmp byte [eax], 2
mov eax, dword [eax + 8]
setne cl
mov dword [ebp - 0x3c], edx
mov edx, dword [ebp + 0xc]
push esi
push edi
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x34], 0x49588a
dec ecx
and ecx, dword [0x4a09d8]
add edx, edx
mov edi, dword [eax + edx*8 + 0xc]
lea eax, [eax + edx*8 + 0xc]
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x38], ebx
cmp dword [edi + 8], 0x3d
mov dword [ebp - 0x24], edi
je 0x44e736
mov eax, 0x10
call fcn.00488480
mov ecx, dword [edi]
mov esi, esp
mov dword [esi], ecx
mov edx, dword [edi + 4]
mov dword [esi + 4], edx
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
mov ecx, dword [edi + 0xc]
mov dword [esi + 0xc], ecx
mov eax, dword [esi + 8]
cmp eax, 7
jge 0x44d338
cmp eax, 6
jne 0x44dd3a
mov eax, dword [esi + 4]
test eax, eax
je 0x44d10d
mov ecx, dword [esi]
xor edi, edi
mov dword [esi], 0x49588a
mov dword [esi + 8], edi
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], eax
cmp dword [ecx], edi
je 0x44cff7
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
cmp eax, dword [ecx]
jae 0x44cf21
cmp edi, 0xfd
jae 0x44cf2b
mov dl, byte [eax]
mov byte [ebp + edi - 0x194], dl
inc eax
inc edi
cmp eax, dword [ecx]
jb 0x44cf07
mov dword [ebp - 0x14], eax
cmp edi, 0xfd
jb 0x44cf39
jmp 0x44cf2e
mov dword [ebp - 0x14], eax
cmp eax, dword [ecx]
jb 0x44d028
mov ecx, dword [ebp - 0x18]
mov ebx, dword [ecx + 4]
movzx eax, byte [ebx + 0x17]
cmp eax, 3
ja case.default.0x44cf45
jmp dword [eax*4 + 0x44eaa4]
mov eax, ebx
call fcn.00401150
cmp dword [0x4a0b8c], 0
jne 0x44cf8d
cmp dword [ebx + 0xc], 0
jne 0x44cf8d
mov ecx, dword [ebx + 0x18]
push 0
lea eax, [ebp - 0x79]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
je 0x44cf83
mov dword [0x4a3b6c], 0
dec eax
jmp 0x44cfc1
mov dword [0x4a3b6c], ebx
xor eax, eax
jmp 0x44cfc1
mov eax, dword [ebx + 0xc]
jmp 0x44cfc1
mov ecx, dword [ebx + 0xc]
push 0
call fcn.00466bf0
jmp 0x44cfc1
push 0
mov ecx, 0x4a2bfc
call fcn.004039a0
cmp eax, 0xffffffff
jne 0x44cfc1
xor eax, eax
jmp 0x44cfc1
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x10]
push edx
push 0
call eax
add esp, 8
mov ecx, 0xfd
sub ecx, edi
cmp eax, ecx
ja 0x44d028
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebx + 4]
lea edx, [ebp + edi - 0x194]
push edx
call fcn.00466bf0
add edi, eax
movzx eax, word [ebx + 0xa]
add dword [ebp - 0x14], eax
add ebx, 0xc
cmp dword [ebx], 0
mov dword [ebp - 0x18], ebx
jne 0x44cefd
mov ecx, dword [ebp - 0x14]
mov al, byte [ecx]
test al, al
je 0x44d017
cmp edi, 0xfd
jae 0x44d01f
inc ecx
mov byte [ebp + edi - 0x194], al
mov al, byte [ecx]
inc edi
test al, al
jne 0x44d000
cmp edi, 0xfd
jb 0x44d024
cmp byte [ecx], 0
jne 0x44d028
test edi, edi
jne 0x44d066
mov eax, dword [ebp - 0x18]
cmp dword [eax], 0
je 0x44d038
add eax, 0xc
cmp dword [eax], 0
jne 0x44d030
cmp byte [eax + 8], 0
je 0x44dd3a
mov eax, dword [ebp - 0x54]
test eax, eax
je case.default.0x44e7fd
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je case.default.0x44e7fd
push eax
or eax, 0xffffffff
call fcn.004011f0
jmp case.default.0x44e7fd
mov ebx, dword [ebp - 0x18]
mov byte [ebp + edi - 0x194], 0
cmp byte [ebx + 8], 0
je 0x44d0b3
push 0
push edi
lea ecx, [ebp - 0x194]
push ecx
mov ecx, 0x4a2c18
call fcn.0041c320
mov dword [ebx + 4], eax
test eax, eax
je 0x44d042
movzx edx, byte [ebx + 9]
cmp edx, dword [eax + 0x10]
jge 0x44e691
cmp byte [ebx + 8], 2
jne 0x44d042
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
add edi, 0x10
jmp 0x44ce93
cmp byte [ebp - 0x194], 0
je 0x44e8f9
lea eax, [ebp - 0x4d]
push eax
push 0
push 3
lea ecx, [ebp - 0x90]
push ecx
push edi
lea edx, [ebp - 0x194]
push edx
mov ecx, 0x4a2c18
call fcn.0041d790
test eax, eax
jne 0x44d10b
movzx eax, byte [ebp - 0x4d]
mov ecx, dword [ebp - 0x90]
push eax
push ecx
push edi
lea edx, [ebp - 0x194]
push edx
mov ecx, 0x4a2c18
call fcn.0041db10
test eax, eax
je 0x44e8f9
mov dword [esi], eax
mov ebx, dword [esi]
mov al, byte [ebx + 0x17]
test al, al
jne 0x44d11c
mov eax, dword [ebx + 0xc]
mov al, byte [eax + 0x17]
movzx eax, al
mov edi, 1
sub eax, edi
je 0x44d1c6
sub eax, 3
jne 0x44d1fc
mov eax, dword [ebx + 0x10]
cmp eax, 0x43dbf0
jne 0x44d157
mov eax, dword [0x49d3c8]
mov ecx, dword [eax + 8]
mov dword [esi], ecx
mov edx, dword [eax + 0xc]
mov dword [esi + 4], edx
mov dword [esi + 8], edi
jmp 0x44dd3a
cmp eax, 0x43b970
jne 0x44d189
mov eax, dword [ebx + 0x18]
cmp byte [eax + 4], 0
jne 0x44d178
mov eax, edi
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], edi
jmp 0x44dd3a
xor eax, eax
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], edi
jmp 0x44dd3a
cmp eax, 0x43c350
jne 0x44d1a5
mov dword [esi], 4
mov dword [esi + 4], 0
mov dword [esi + 8], edi
jmp 0x44dd3a
cmp eax, 0x43e1d0
jne 0x44d1fc
mov ecx, dword [0x49d3c8]
mov edx, dword [ecx + 0x38]
mov dword [esi], edx
mov dword [esi + 4], 0
mov dword [esi + 8], edi
jmp 0x44dd3a
cmp dword [0x4a0b8c], 0
jne 0x44dd33
cmp byte [ebx + 0x17], 0
jne 0x44d1de
mov eax, dword [ebx + 0xc]
jmp 0x44d1e0
mov eax, ebx
test byte [eax + 0x15], 0xa
jne 0x44dd33
xor ecx, ecx
cmp dword [eax + 0xc], ecx
setne cl
mov eax, ecx
test eax, eax
jne 0x44dd33
movzx eax, byte [ebx + 0x17]
cmp eax, 3
ja case.default.0x44d205
jmp dword [eax*4 + 0x44eab4]
mov eax, ebx
call fcn.00401150
cmp dword [0x4a0b8c], 0
jne 0x44d24d
cmp dword [ebx + 0xc], 0
jne 0x44d24d
mov eax, dword [ebx + 0x18]
push 0
lea edx, [ebp - 0x71]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
je 0x44d243
mov dword [0x4a3b6c], 0
dec eax
jmp 0x44d281
mov dword [0x4a3b6c], ebx
xor eax, eax
jmp 0x44d281
mov eax, dword [ebx + 0xc]
jmp 0x44d281
mov ecx, dword [ebx + 0xc]
push 0
call fcn.00466bf0
jmp 0x44d281
push 0
mov ecx, 0x4a2bfc
call fcn.004039a0
cmp eax, 0xffffffff
jne 0x44d281
xor eax, eax
jmp 0x44d281
mov ecx, dword [ebx + 0x18]
mov edx, dword [ebx + 0x10]
push ecx
push 0
call edx
add esp, 8
lea ebx, [eax + 1]
cmp ebx, edi
jne 0x44d2b2
mov eax, dword [esi]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x44d297
mov eax, dword [eax + 0xc]
mov cl, byte [eax + 0x17]
cmp cl, 1
je 0x44dd33
mov dword [esi], 0x49588a
mov dword [esi + 8], 0
jmp 0x44dd3a
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x3c]
mov eax, dword [ebp + 0x20]
add edx, dword [eax]
cmp ebx, edx
ja 0x44d2cf
mov eax, dword [ebp - 0x3c]
mov edi, eax
add eax, ebx
mov dword [ebp - 0x3c], eax
jmp 0x44d31b
cmp ebx, 0x1001
jae 0x44d2ee
cmp dword [ebp - 0x38], 0x9c40
jae 0x44d2ee
mov eax, ebx
call fcn.004854f0
add dword [ebp - 0x38], ebx
mov edi, esp
jmp 0x44d31b
cmp dword [ebp - 0x28], 0xc8
je 0x44e69f
push ebx
call fcn.00476de3
mov ecx, dword [ebp - 0x28]
add esp, 4
mov dword [ebp + ecx*4 - 0x4b4], eax
test eax, eax
je 0x44e69f
inc dword [ebp - 0x28]
mov edi, eax
mov ecx, dword [esi]
push edi
call fcn.00466bf0
mov dword [esi], edi
mov dword [esi + 4], 0
mov dword [esi + 8], 4
jmp 0x44dd3a
cmp eax, 0x3b
jne 0x44d676
mov ecx, dword [esi]
movzx eax, byte [ecx + 9]
mov edi, dword [ecx + 4]
mov dword [ebp - 0x40], edi
cmp eax, dword [ebp - 0x20]
jg 0x44d042
mov ebx, dword [ebp - 0x20]
lea edx, [ebp - 0x194]
mov dword [esi + 4], edx
mov edx, dword [esi + 0xc]
mov dword [ebp - 0x58], edx
xor edx, edx
sub ebx, eax
mov dword [ebp - 0x20], ebx
mov dword [esi + 0xc], edx
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x60], edx
mov dword [ebp - 4], edx
cmp byte [ecx + 8], 2
lea ebx, [ebp + ebx*4 - 0xcb4]
sete cl
movzx edx, cl
push edx
push eax
mov eax, dword [ebp + 0x10]
push ebx
push esi
push eax
lea ecx, [ebp - 0x68]
push ecx
push edi
call fcn.0044ec60
test al, al
je 0x44e6aa
mov eax, dword [esi + 8]
cmp eax, 1
je 0x44d648
cmp eax, 2
je 0x44d648
cmp eax, 5
je 0x44d648
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x44d3ef
mov edx, dword [ebp - 0x24]
cmp dword [edx + 0x18], 0x3d
jne 0x44d3ef
mov eax, dword [ebp + 8]
cmp byte [eax], 3
mov dword [ebp - 0x14], 1
je 0x44e6e1
mov ebx, dword [ebp - 0x54]
jmp 0x44d421
mov ecx, dword [ebp - 0x24]
cmp dword [ecx + 0x18], 0x10
mov dword [ebp - 0x14], 0
jne 0x44d41f
test eax, eax
je 0x44d41f
mov ebx, dword [ebx - 4]
cmp dword [ebx + 8], 3
jne 0x44d41f
mov ebx, dword [ebx]
mov al, byte [ebx + 0x17]
test al, al
jne 0x44d41b
mov edx, dword [ebx + 0xc]
mov al, byte [edx + 0x17]
cmp al, 1
je 0x44d421
xor ebx, ebx
mov edi, dword [esi]
test ebx, ebx
je 0x44d4d6
mov eax, dword [0x49d3c8]
mov ecx, dword [eax + 0x94]
cmp ecx, dword [ebp - 0x40]
jne 0x44d44b
cmp byte [ebx + 0x16], 0
je 0x44d44b
test byte [ebx + 0x15], 4
je 0x44d4d6
mov eax, dword [esi + 0xc]
cmp eax, edi
jne 0x44d460
mov edx, dword [esi + 4]
push edx
push eax
mov eax, ebx
call fcn.00466e90
jmp 0x44d49d
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x44d465
sub eax, edx
cmp edi, dword [0x4a2b50]
jne 0x44d492
cmp eax, 0x40
jb 0x44d492
push eax
push edi
mov eax, ebx
call fcn.00466e90
xor eax, eax
mov dword [0x4a2b50], eax
mov dword [0x4a2b54], eax
jmp 0x44d49d
push ebx
or eax, 0xffffffff
mov ecx, edi
call fcn.004011f0
cmp dword [ebp - 0x14], 0
jne 0x44e6f1
mov eax, dword [ebp - 0x24]
dec dword [ebp - 0x20]
add eax, 0x10
mov dword [ebp - 0x24], eax
mov eax, dword [eax + 0xc]
mov dword [esi + 0xc], eax
lea eax, [ebp - 0x68]
mov dword [esi], ebx
mov dword [esi + 8], 3
mov dword [ebp - 4], 0xffffffff
call fcn.0044f1d0
jmp 0x44dd3a
mov eax, dword [esi + 0xc]
mov edx, 1
test eax, eax
je 0x44d502
mov ecx, dword [ebp - 0x28]
cmp ecx, 0xc8
je 0x44e705
cmp eax, edi
jne 0x44d4f7
xor edx, edx
mov dword [ebp + ecx*4 - 0x4b4], eax
inc ecx
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x58]
mov dword [esi + 0xc], ecx
cmp byte [edi], 0
jne 0x44d535
lea eax, [ebp - 0x68]
mov dword [esi], 0x49588a
mov dword [esi + 8], 4
mov dword [esi + 4], 0
mov dword [ebp - 4], 0xffffffff
call fcn.0044f1d0
jmp 0x44dd3a
mov eax, dword [ebp - 0x40]
cmp byte [eax + 0x31], 0
je 0x44d54c
test edx, edx
je 0x44d587
xor edx, edx
cmp dword [ebp - 0x14], edx
sete dl
jmp 0x44d587
cmp edi, dword [0x4a2b50]
jne 0x44d582
xor edx, edx
cmp dword [ebp - 0x14], edx
jne 0x44d587
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 0x18]
add ecx, 0x18
cmp eax, 0x3d
je 0x44d587
lea esp, [esp]
cmp eax, 0x3b
je 0x44d582
mov eax, dword [ecx + 0x10]
add ecx, 0x10
cmp eax, 0x3d
jne 0x44d570
jmp 0x44d587
mov edx, 1
mov dword [esi + 4], 0
mov dword [esi + 8], 4
test edx, edx
je 0x44d634
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x44d5a2
mov ecx, dword [ebp + 0x1c]
sub eax, edx
mov edx, dword [ecx]
sub edx, dword [ebp - 0x3c]
lea ebx, [eax + 1]
mov eax, dword [ebp + 0x20]
add edx, dword [eax]
cmp ebx, edx
ja 0x44d5d2
mov ecx, dword [ebp - 0x3c]
push ebx
push edi
push ecx
call fcn.0047b470
add esp, 0xc
add dword [ebp - 0x3c], ebx
jmp 0x44d632
cmp ebx, 0x1001
jae 0x44d5fc
cmp dword [ebp - 0x38], 0x9c40
jae 0x44d5fc
mov eax, ebx
call fcn.004854f0
mov eax, esp
push ebx
push edi
push eax
call fcn.0047b470
add esp, 0xc
add dword [ebp - 0x38], ebx
jmp 0x44d632
cmp dword [ebp - 0x28], 0xc8
je 0x44e72e
push ebx
call fcn.00476de3
mov edx, dword [ebp - 0x28]
add esp, 4
mov dword [ebp + edx*4 - 0x4b4], eax
test eax, eax
je 0x44e72e
push ebx
push edi
push eax
call fcn.0047b470
add esp, 0xc
inc dword [ebp - 0x28]
mov dword [esi], eax
lea eax, [ebp - 0x68]
mov dword [ebp - 4], 0xffffffff
call fcn.0044f1d0
jmp 0x44dd3a
mov eax, dword [ebp - 0x58]
mov dword [esi + 0xc], eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x68]
test eax, eax
je 0x44dd3a
lea ecx, [ebp - 0x60]
push ecx
lea edx, [ebp - 0x64]
push edx
push eax
call fcn.004670b0
add esp, 0xc
jmp 0x44dd3a
cmp eax, 0x1c
jne 0x44d6b9
cmp dword [esi + 0xc], 0
je 0x44e691
test ebx, ebx
je 0x44e691
mov eax, dword [ebp + ebx*4 - 0xcb8]
mov ecx, dword [eax]
dec ebx
mov dword [esi], ecx
mov edx, dword [eax + 4]
mov dword [esi + 4], edx
mov ecx, dword [eax + 8]
mov dword [esi + 8], ecx
mov edx, dword [eax + 0xc]
mov dword [esi + 0xc], edx
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x20], ebx
mov dword [esi + 0xc], eax
jmp 0x44dd44
test ebx, ebx
je 0x44d042
dec ebx
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp + ebx*4 - 0xcb4]
cmp dword [ebx + 8], 7
jge 0x44d042
cmp eax, 0x1d
jne 0x44d711
mov eax, dword [esi + 0xc]
test eax, eax
je 0x44d042
mov ecx, dword [eax + 0xc]
mov dword [ebx + 0xc], ecx
mov edx, dword [ebx]
mov dword [esi], edx
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 4]
mov dword [esi + 4], eax
mov ecx, dword [ebx + 8]
mov dword [esi + 8], ecx
mov edx, dword [ebx + 0xc]
mov dword [esi + 0xc], edx
mov dword [ebx + 8], 1
jmp 0x44dd3a
cmp eax, 0xf
je 0x44e691
cmp eax, 0x10
je 0x44d733
cmp eax, 0x1b
je 0x44d733
cmp eax, 0x28
je 0x44d733
mov eax, ebx
call fcn.00445830
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 8]
xor edi, edi
lea ecx, [eax - 8]
mov dword [ebp - 0x14], edi
cmp ecx, 0x32
ja case.0x44d74e.10
movzx ecx, byte [ecx + 0x44eae0]
jmp dword [ecx*4 + 0x44eac4]
mov ecx, dword [ebp - 0x2c]
mov eax, ebx
call fcn.00445770
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 8], 1
jmp 0x44dd3a
mov ecx, dword [ebp - 0x2c]
mov eax, ebx
call fcn.00445770
test eax, eax
jne 0x44e087
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
jmp 0x44dd3a
mov eax, dword [ebp - 0x2c]
cmp eax, 1
jne 0x44d7c0
push eax
mov ecx, ebx
call fcn.004458f0
add esp, 4
neg eax
adc edx, edi
neg edx
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x2c]
mov dword [esi], eax
mov dword [esi + 8], edx
jmp 0x44dd3a
cmp eax, 2
jne 0x44d964
push 1
push edi
mov eax, ebx
call fcn.00445970
fchs
fstp qword [esi]
add esp, 8
mov edx, dword [ebp - 0x2c]
mov dword [esi + 8], edx
jmp 0x44dd3a
xor ecx, ecx
cmp eax, 0x39
setge cl
mov edi, ecx
mov ecx, dword [ebx + 8]
cmp ecx, 3
jne 0x44d2a0
mov edx, dword [ebp - 0x2c]
test edx, edx
je 0x44d8ac
cmp eax, 8
je 0x44d817
mov dword [ebp - 0x14], 0xffffffff
cmp eax, 0x39
jne 0x44d81e
mov dword [ebp - 0x14], 1
push 1
cmp edx, 1
jne 0x44d849
mov ecx, ebx
call fcn.004458f0
mov dword [esi], eax
mov eax, dword [ebp - 0x14]
mov dword [esi + 4], edx
add esp, 4
cdq
add eax, dword [esi]
adc edx, dword [esi + 4]
push edx
mov edx, dword [ebx]
push eax
push edx
call fcn.00411d40
jmp 0x44d862
push 0
mov eax, ebx
call fcn.00445970
fst qword [esi]
fiadd dword [ebp - 0x14]
mov eax, dword [ebx]
fstp qword [esp]
push eax
call fcn.00411d70
test edi, edi
je 0x44d7da
mov ebx, dword [ebx]
mov al, byte [ebx + 0x17]
test al, al
jne 0x44d879
mov ecx, dword [ebx + 0xc]
mov al, byte [ecx + 0x17]
cmp al, 1
jne 0x44d884
mov dword [esi], ebx
jmp 0x44dd33
mov ecx, dword [ebp - 0x2c]
cmp ecx, 1
jne 0x44d89d
mov eax, dword [ebp - 0x14]
cdq
add dword [esi], eax
mov dword [esi + 8], ecx
adc dword [esi + 4], edx
jmp 0x44dd3a
fild dword [ebp - 0x14]
mov dword [esi + 8], ecx
fadd qword [esi]
fstp qword [esi]
jmp 0x44dd3a
cmp ecx, 3
jne 0x44d2a0
mov ecx, dword [ebx]
push 1
push 0
push 0xffffffffffffffff
push 0
call fcn.004668b0
test edi, edi
je 0x44d2a0
mov ebx, dword [ebx]
mov al, byte [ebx + 0x17]
test al, al
jne 0x44d8db
mov eax, dword [ebx + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
jne 0x44d2a0
mov dword [esi], ebx
jmp 0x44dd33
mov eax, dword [ebx + 8]
cmp eax, 3
jne 0x44d946
mov eax, dword [ebx]
cmp byte [eax + 0x17], 0
jne 0x44d8ff
mov ecx, dword [eax + 0xc]
jmp 0x44d901
mov ecx, eax
test byte [ecx + 0x15], 2
je 0x44d926
mov dword [esi + 8], 1
mov ebx, dword [ebx]
cmp byte [ebx + 0x17], 0
jne 0x44d919
mov ebx, dword [ebx + 0xc]
mov eax, dword [ebx]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x44dd3a
call fcn.004033d0
mov dword [esi + 8], 1
mov ecx, dword [ebx]
push 1
call fcn.00401230
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x44dd3a
cmp eax, 5
jne 0x44d964
mov dword [esi + 8], 1
mov eax, dword [ebx]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x44dd3a
cmp dword [ebp - 0x2c], edi
jne 0x44d972
mov dword [esi], 0x49588a
mov dword [esi + 8], edi
jmp 0x44dd3a
xor ecx, ecx
cmp dword [ebp - 0x2c], 1
sete cl
push ecx
mov ecx, ebx
call fcn.004458f0
add esp, 4
cmp dword [esi + 8], 0x35
jne 0x44d9bf
cmp edx, edi
ja 0x44d9aa
jb 0x44d997
cmp eax, 0xffffffff
ja 0x44d9aa
not eax
mov dword [esi + 4], edi
mov dword [esi], eax
mov dword [esi + 8], 1
jmp 0x44dd3a
not eax
not edx
mov dword [esi + 4], edx
mov dword [esi], eax
mov dword [esi + 8], 1
jmp 0x44dd3a
cmp eax, 0x1000
jae 0x44d9da
xor eax, eax
cdq
mov dword [esi + 4], edx
mov dword [esi], eax
mov dword [esi + 8], 1
jmp 0x44dd3a
movzx eax, byte [eax]
cdq
mov dword [esi + 4], edx
mov dword [esi], eax
mov dword [esi + 8], 1
jmp 0x44dd3a
mov ecx, dword [ebp - 0x20]
cmp ecx, edi
je 0x44d042
dec ecx
mov dword [ebp - 0x20], ecx
lea ecx, [ebp + ecx*4 - 0xcb4]
mov dword [ebp - 0x48], ecx
mov ecx, dword [ecx]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ecx + 8]
cmp ecx, 7
jge 0x44d042
cmp eax, 0x1b
jg 0x44db05
cmp eax, 0x10
jl 0x44db05
cmp ecx, 3
je 0x44da3e
mov dword [esi], 0x49588a
mov dword [esi + 8], edi
jmp 0x44dd3a
add eax, 0xfffffff0
cmp eax, 0xb
ja case.default.0x44da4a
jmp dword [eax*4 + 0x44eb14]
mov edx, dword [ebp - 0x30]
mov edi, dword [edx]
mov eax, ebx
call fcn.004662d0
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x44da6f
mov ecx, dword [eax + 0xc]
mov cl, byte [ecx + 0x17]
cmp cl, 2
jne 0x44e422
mov edx, dword [ebx]
mov dword [esi], edx
mov eax, dword [ebx + 4]
mov dword [esi + 4], eax
mov ecx, dword [ebx + 8]
mov eax, dword [ebp - 0x24]
mov dword [esi + 8], ecx
mov edx, dword [ebx + 0xc]
mov dword [esi + 0xc], edx
mov ecx, dword [eax + 0xc]
mov dword [esi + 0xc], ecx
jmp 0x44dd3a
mov dword [esi + 8], 0x2e
jmp case.default.0x44da4a
mov dword [esi + 8], 0x2f
jmp case.default.0x44da4a
mov dword [esi + 8], 0x30
jmp case.default.0x44da4a
mov dword [esi + 8], 0x31
jmp case.default.0x44da4a
mov dword [esi + 8], 0x32
jmp case.default.0x44da4a
mov dword [esi + 8], 0x29
jmp case.default.0x44da4a
mov dword [esi + 8], 0x2a
jmp case.default.0x44da4a
mov dword [esi + 8], 0x2b
jmp case.default.0x44da4a
mov dword [esi + 8], 0x2c
jmp case.default.0x44da4a
mov dword [esi + 8], 0x2d
jmp case.default.0x44da4a
mov dword [esi + 8], 0x28
mov edx, dword [ebp - 0x30]
mov eax, dword [edx]
mov dword [ebp - 0x14], eax
cmp dword [esi + 8], 0x28
je 0x44e03c
cmp dword [ebp - 0x2c], edi
je 0x44e03c
mov eax, dword [ebp - 0x30]
call fcn.00445830
mov edi, eax
mov dword [ebp - 0x58], edi
test edi, edi
je 0x44e03c
cmp dword [ebp - 0x2c], 1
jne 0x44db3e
cmp edi, 1
jne 0x44db3e
cmp dword [esi + 8], 0x31
jne 0x44db53
mov eax, dword [esi + 8]
cmp eax, 0x2d
jg 0x44dde5
cmp eax, 0x29
jl 0x44dde5
xor ecx, ecx
cmp dword [ebp - 0x2c], 1
sete cl
push ecx
mov ecx, ebx
call fcn.004458f0
mov ecx, dword [ebp - 0x30]
mov edi, edx
xor edx, edx
add esp, 4
cmp dword [ebp - 0x58], 1
mov ebx, eax
sete dl
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], edi
push edx
call fcn.004458f0
mov ecx, dword [esi + 8]
add ecx, 0xffffffdf
add esp, 4
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x18], 1
cmp ecx, 0x17
ja case.0x44dbab.40
jmp dword [ecx*4 + 0x44eb44]
add eax, ebx
adc edx, edi
mov dword [esi + 4], edx
mov dword [esi], eax
jmp case.0x44dbab.40
sub eax, ebx
sbb edx, edi
mov dword [esi + 4], edx
mov dword [esi], eax
jmp case.0x44dbab.40
push edi
push ebx
push edx
push eax
call fcn.0047f2b0
mov dword [esi + 4], edx
mov dword [esi], eax
jmp case.0x44dbab.40
cmp eax, ebx
jne 0x44dbfa
cmp edx, edi
jne 0x44dbfa
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
jmp case.0x44dbab.40
xor eax, eax
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
jmp case.0x44dbab.40
cmp eax, ebx
jne 0x44dc10
cmp edx, edi
je 0x44dbfa
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
jmp case.0x44dbab.40
cmp edx, edi
jl 0x44dbfa
jg 0x44dc2b
cmp eax, ebx
jbe 0x44dbfa
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
jmp case.0x44dbab.40
cmp edx, edi
jg 0x44dbfa
jl 0x44dc46
cmp eax, ebx
jae 0x44dbfa
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
jmp case.0x44dbab.40
cmp edx, edi
jl 0x44dbfa
jg 0x44dc61
cmp eax, ebx
jb 0x44dbfa
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
jmp case.0x44dbab.40
cmp edx, edi
jg 0x44dbfa
jl 0x44dc80
cmp eax, ebx
ja 0x44dbfa
mov eax, 1
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
jmp case.0x44dbab.40
and eax, ebx
and edx, edi
mov dword [esi + 4], edx
mov dword [esi], eax
jmp case.0x44dbab.40
or eax, ebx
or edx, edi
mov dword [esi + 4], edx
mov dword [esi], eax
jmp case.0x44dbab.40
xor eax, ebx
xor edx, edi
mov dword [esi + 4], edx
mov dword [esi], eax
jmp case.0x44dbab.40
mov ecx, ebx
call fcn.0048ab50
mov dword [esi + 4], edx
mov dword [esi], eax
jmp case.0x44dbab.40
mov ecx, ebx
call fcn.0048ab20
mov dword [esi + 4], edx
mov dword [esi], eax
jmp case.0x44dbab.40
mov ecx, ebx
or ecx, dword [ebp - 0x80]
je case.default.0x44e0d5
mov ecx, dword [ebp - 0x80]
push ecx
push ebx
push edx
push eax
call fcn.0048a050
mov dword [esi + 4], edx
mov dword [esi], eax
jmp case.0x44dbab.40
mov ecx, eax
or ecx, edx
jne 0x44dd57
test edi, edi
jg 0x44ddb3
jl case.default.0x44e0d5
test ebx, ebx
jae 0x44ddb3
mov dword [esi], 0x49588a
mov dword [ebp - 0x18], 0
mov edx, dword [ebp - 0x18]
mov dword [esi + 8], edx
cmp dword [ebp - 0x14], 0
je 0x44dd3a
mov edi, dword [ebp - 0x14]
mov eax, esi
call fcn.004662d0
mov al, byte [edi + 0x17]
test al, al
jne 0x44dd2d
mov eax, dword [edi + 0xc]
mov al, byte [eax + 0x17]
cmp al, 2
je 0x44dd3a
mov dword [esi], edi
mov dword [esi + 8], 3
cmp dword [esi + 0xc], 0
je 0x44e648
mov eax, dword [esi + 8]
cmp eax, 5
ja case.0x44dd50.1
jmp dword [eax*4 + 0x44eba4]
test edx, edx
jg 0x44ddb3
jl 0x44dd61
test eax, eax
jae 0x44ddb3
neg eax
adc edx, 0
neg edx
mov dword [ebp - 0x58], 1
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], edx
fild qword [ebp - 0x84]
sub esp, 0x10
fstp qword [esp + 8]
fild qword [ebp - 0x8c]
fstp qword [esp]
call fcn.0042a660
cmp dword [ebp - 0x58], 0
fst qword [esi]
je 0x44ddbc
push 0
push 2
push edi
push ebx
call fcn.0048a930
or eax, edx
je 0x44ddbc
fchs
fstp qword [esi]
jmp 0x44ddbe
mov dword [ebp - 0x58], 0
jmp 0x44dd7b
fstp st(0)
test edi, edi
jg 0x44ddd4
jl 0x44ddc8
test ebx, ebx
jae 0x44ddd4
mov dword [ebp - 0x18], 2
jmp case.0x44dbab.40
fld qword [esi]
call fcn.00489fd6
mov dword [esi + 4], edx
mov dword [esi], eax
jmp case.0x44dbab.40
xor eax, eax
cmp dword [ebp - 0x2c], 2
sete al
push eax
push 1
mov eax, ebx
call fcn.00445970
fstp qword [ebp - 0x4c]
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp edi, 2
sete cl
push ecx
push 1
call fcn.00445970
fst qword [ebp - 0x5c]
mov ecx, dword [esi + 8]
add esp, 0x10
cmp ecx, 0x21
jl 0x44de26
mov ebx, 1
cmp ecx, 0x27
jle 0x44de2b
mov ebx, 2
lea eax, [ecx - 0x21]
cmp eax, 0x17
ja case.0x44de3a.40
movzx edx, byte [eax + 0x44ebec]
jmp dword [edx*4 + 0x44ebbc]
fadd qword [ebp - 0x4c]
mov dword [esi + 8], ebx
fstp qword [esi]
jmp 0x44dd10
fsub qword [ebp - 0x4c]
mov dword [esi + 8], ebx
fstp qword [esi]
jmp 0x44dd10
fmul qword [ebp - 0x4c]
mov dword [esi + 8], ebx
fstp qword [esi]
jmp 0x44dd10
fld qword [ebp - 0x4c]
fld st(0)
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x44de8c
fstp st(1)
mov dword [esi], 0x49588a
xor ebx, ebx
fstp st(0)
mov dword [esi + 8], ebx
jmp 0x44dd10
fdivp st(1)
fst qword [esi]
cmp ecx, 0x32
jne case.0x44de3a.40
sub esp, 8
fstp qword [esp]
call fcn.0042a6c0
fstp qword [esi]
mov dword [esi + 8], ebx
jmp 0x44dd10
fld qword [ebp - 0x4c]
fucompp
fnstsw ax
test ah, 0x44
jp 0x44deca
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x44dd10
xor eax, eax
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x44dd10
fld qword [ebp - 0x4c]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x44deca
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x44dd10
fcomp qword [ebp - 0x4c]
fnstsw ax
test ah, 0x41
jne 0x44deca
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x44dd10
fcomp qword [ebp - 0x4c]
fnstsw ax
test ah, 5
jp 0x44deca
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x44dd10
fcomp qword [ebp - 0x4c]
fnstsw ax
test ah, 1
jne 0x44deca
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x44dd10
fcomp qword [ebp - 0x4c]
fnstsw ax
test ah, 0x41
jp 0x44deca
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
jmp 0x44dd10
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x44df89
mov edi, 1
jmp 0x44df8b
xor edi, edi
fld st(1)
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x44dfb4
fcomp qword [ebp - 0x4c]
fnstsw ax
test ah, 0x41
jne 0x44dfb6
fstp st(0)
xor ebx, ebx
mov dword [esi], 0x49588a
mov dword [esi + 8], ebx
jmp 0x44dd10
fstp st(0)
test edi, edi
je 0x44dfe0
fstp st(0)
sub esp, 0x10
fld1
fstp qword [esp + 8]
fld qword [ebp - 0x4c]
fstp qword [esp]
call fcn.0042a6f0
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x44dfa4
fld qword [ebp - 0x5c]
fchs
fld qword [ebp - 0x4c]
sub esp, 0x10
fstp qword [esp + 8]
fstp qword [esp]
call fcn.0042a660
fstp qword [esi]
test edi, edi
je 0x44de84
fld qword [0x497c48]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [ebp - 0x4c]
fstp qword [esp]
call fcn.0042a6f0
sub esp, 8
fstp qword [esp]
call fcn.0042a650
fld1
fucompp
fnstsw ax
test ah, 0x44
jp 0x44de84
fld qword [esi]
mov dword [esi + 8], ebx
fchs
fstp qword [esi]
jmp 0x44dd10
mov edi, dword [esi + 8]
lea eax, [edi - 0x21]
cmp eax, 2
ja 0x44e09c
mov eax, ebx
call fcn.00445b80
mov edx, eax
mov eax, dword [ebp - 0x30]
call fcn.00445b80
test edx, edx
jne 0x44e060
test eax, eax
je 0x44e09c
xor ecx, ecx
cmp edx, eax
sete cl
xor edx, edx
cmp edi, 0x23
setne dl
cmp edx, ecx
jne 0x44e087
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
jmp 0x44dd3a
xor eax, eax
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], 1
jmp 0x44dd3a
lea ecx, [ebp - 0xdb4]
mov eax, ebx
call fcn.00445a20
mov edi, eax
mov eax, dword [ebp - 0x30]
lea ecx, [ebp - 0x194]
mov dword [ebp - 0x40], edi
call fcn.00445a20
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 8]
add eax, 0xffffffdf
mov dword [ebp - 0x18], 1
cmp eax, 7
ja case.default.0x44e0d5
jmp dword [eax*4 + 0x44ec04]
mov eax, dword [0x49d3c8]
cmp byte [eax + 0xc9], 0
push edi
jne 0x44e0f9
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.00476cb6
add esp, 8
jmp 0x44e103
mov edx, dword [ebp - 0x1c]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x44e118
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp case.0x44dbab.40
xor eax, eax
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp case.0x44dbab.40
mov eax, dword [ebp - 0x1c]
push edi
push eax
call fcn.00476dcc
add esp, 8
test eax, eax
jne 0x44e118
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp case.0x44dbab.40
mov ecx, dword [0x49d3c8]
mov al, byte [ecx + 0xc9]
push edi
test al, al
jne 0x44e164
mov edx, dword [ebp - 0x1c]
push edx
call fcn.00476cb6
jmp 0x44e18f
cmp al, 2
jne 0x44e186
mov eax, dword [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
xor edx, edx
test eax, eax
setne dl
mov eax, edx
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x44dbab.40
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.00476dcc
xor edx, edx
add esp, 8
test eax, eax
setne dl
mov eax, edx
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x44dbab.40
mov eax, dword [0x49d3c8]
mov al, byte [eax + 0xc9]
push edi
test al, al
jne 0x44e1c1
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.00476cb6
jmp 0x44e1da
cmp al, 2
jne 0x44e1d1
mov edx, dword [ebp - 0x1c]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x44e1dd
mov eax, dword [ebp - 0x1c]
push eax
call fcn.00476dcc
add esp, 8
test eax, eax
jle 0x44e118
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp case.0x44dbab.40
mov ecx, dword [0x49d3c8]
mov al, byte [ecx + 0xc9]
push edi
test al, al
jne 0x44e212
mov ebx, ebp
in al, 0x52
call fcn.00476cbe
jmp 0x44e22b
cmp al, 2
jne 0x44e222
mov eax, dword [ebp - 0x1c]
push eax
call dword [0x248d2b4]
sti
push cs
mov ebp, dword [ebp - 0x20]
push ebp
call fcn.0047accc
add esp, 0x28
test eax, edx
pop es
mov edx, esp
invalid
mov edx, dword [0x9dbc8]
mov al, byte [edx + 0x80002c9]
push edi
test al, al
jne 0x44e263
mov eax, dword [ebp - 0x1c]
shr cl, 0x55
mov al, byte [esi]
add bl, cl
sbb dword [edx + eax], edi
cmp al, 2
jne 0x44e275
mov ecx, dword [ebp - 0x1c]
push ecx
call dword [ebp + 0x148f2b4]
jmp 0x44e27f
hlt
cmp eax, 0xffffffff
dec edi
xchg byte [eax], dl
cld
std
invalid
mov eax, dword [0x49d3c8]
mov al, byte [eax + 0x14c9]
push edi
test al, al
jne 0x44e2b4
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.00476cb6
jmp 0x44e2cd
cmp al, 2
jne 0x44e2c4
mov ebx, dword [ebp - 0x1c]
pop edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x44e2d2
mov eax, dword [ebp - 0x1c]
push eax
call 0x1476dcc
add dword [eax + ecx + 0xa01f883], 0xffffff8d
aas
add dword [edx], ecx
lea edi, [edi]
invalid
dec esi
or al, 0xe9
and al, 0xfa
invalid
mov edi, dword [ebx + 8]
add esi, dword [0xe8138b0d]
sub dword [esi], edi
cld
jg 0x44e2e3
sbb byte [ebx + 0x1508dcf], cl
mov edi, edi
mov cl, byte [eax]
inc edx
test cl, cl
jne 0x44e300
sub eax, edx
jecxz 0x44e388
in al, dx
add byte [ebp + 0x1a74e84d], cl
mov ecx, edx
mov eax, dword [ebp - 0x13]
push ecx
push edi
call fcn.00466e10
test eax, eax
xor al, 2
mov edx, dword [ebp - 0x14]
retf
push ebp
fadd qword [ebx + 0xf10187a]
add eax, 0x2028
cmp dword [ebp - 0x20], 0
je 0x8044e4bc
mov eax, dword [ebp - 0x48]
mov eax, dword [eax - 4]
sbb dword [eax + 0x18], 3
jne 0x45e4fc
test dword [esi + 1], ecx
add dword [eax], eax
cmp dword [eax], 0xffffff82
inc edi
pop ss
test al, al
jne 0x44e3bd
mov ecx, dword [edi + 0xc]
mov al, byte [ecx + 0x57]
mov esp, 0xf7c50f21
add byte [eax], al
add bh, al
inc ebp
mov byte [eax], al
add byte [eax], al
add byte [ebp - 0x177bf001], al
add byte [eax], al
add dl, ch
add byte [ebx + 0x2e53e8cf], ch
jnp 0x44e3dc
invalid
cmp eax, dword [ecx - 0x1c]
jne 0x44e3a9
mov eax, dword [ebp - 0x18]
pop dword [ebp - 0x40]
push edx
inc eax
mov eax, ebx
call fcn.00467e10
test al, al
je 0x46e4bc
cmp dword [ebp - 0x58], 0
jge case.default.0x44e7fd
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x1c]
add eax, 0x10
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x20]
dec eax
mov dword [esi + 0xc], ecx
mov edx, dword [ebp + eax*4 - 0xcb4]
mov dword [ebp - 0x20], eax
mov eax, dword [edx]
mov dword [esi], eax
jmp 0x44dd33
mov edi, dword [esi]
cmp byte [edi + 0x17], 0
jne 0x44e58d
mov edi, dword [edi + 0xc]
movzx eax, byte [edi + 0x15]
and eax, 0x70
cmp eax, 0x10
je 0x44e5dc
cmp eax, 0x20
je 0x44e5cf
cmp eax, 0x40
je case.0x44dd50.0
push 0
push 1
push 0
push 1
push 1
mov ecx, edi
call fcn.00401230
call fcn.00463e80
add esp, 0x10
test eax, eax
jne case.0x44dd50.1
mov cl, byte [edi + 0x15]
test cl, cl
js case.0x44dd50.1
or cl, 0x40
mov byte [edi + 0x15], cl
jmp case.0x44dd50.1
mov eax, 2
jmp case.0x44dd50.1
cmp dword [esi + 4], 0
je 0x44e5e3
mov eax, 1
jmp case.0x44dd50.1
push 0
push 1
push 0
push 1
xor ecx, ecx
mov eax, esi
call fcn.00445a20
call fcn.00463e80
add esp, 0x10
jmp case.0x44dd50.1
xor eax, eax
mov ecx, eax
mov eax, esi
call fcn.00445770
mov ecx, dword [esi + 0xc]
cmp dword [ecx + 8], 0x1d
je 0x44e687
xor edx, edx
cmp dword [ecx + 8], 0x1e
sete dl
cmp eax, edx
jne 0x44e691
mov dword [ebp - 0x24], ecx
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x44e633
cmp dword [ecx + 8], 0x1d
jne 0x44e616
cdq
mov dword [esi + 8], 1
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 0xc], ecx
jmp 0x44dd3a
mov edi, dword [ebp - 0x78]
mov ebx, dword [ebp - 0x20]
cmp edi, ebx
jle 0x44e66e
mov eax, dword [ebp + edi*4 - 0xcb8]
dec edi
cmp dword [eax + 8], 5
jne 0x44e66a
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp edi, ebx
jg 0x44e652
mov edi, dword [ebp - 0x24]
inc ebx
mov dword [ebp + ebx*4 - 0xcb8], esi
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x78], ebx
add edi, 0x10
jmp 0x44ce93
test eax, eax
jne 0x44e691
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x24], eax
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
add edi, 0x10
jmp 0x44ce93
mov ecx, dword [esi]
mov edx, dword [ecx + 0x18]
push edx
jmp 0x44e8ea
mov eax, dword [ebp + 0x10]
cmp dword [eax], 1
je 0x44e6b9
mov dword [ebp - 0x34], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x68]
test eax, eax
je case.default.0x44e7fd
lea ecx, [ebp - 0x60]
push ecx
lea edx, [ebp - 0x64]
push edx
push eax
call fcn.004670b0
add esp, 0xc
jmp case.default.0x44e7fd
mov esi, dword [esi + 0xc]
test esi, esi
je 0x44e6f1
push esi
call fcn.004785bf
add esp, 4
lea eax, [ebp - 0x68]
mov dword [ebp - 4], 0xffffffff
call fcn.0044f1d0
jmp case.default.0x44e7fd
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax]
push ecx
mov ecx, dword [ebp + 8]
push 0
push str.Out_of_memory.__The_current_thread_will_exit.
call fcn.004296d0
lea eax, [ebp - 0x68]
mov dword [ebp - 4], 0xffffffff
call fcn.0044f1d0
jmp 0x44e8f9
mov edx, dword [ebp - 0x40]
mov eax, dword [edx]
push eax
jmp 0x44e70b
mov ecx, dword [ebp + 8]
mov cl, byte [ecx]
cmp cl, 3
je case.default.0x44e7fd
cmp dword [ebp - 0x20], 1
jne 0x44d042
cmp dword [ebp - 0x54], 0
mov eax, dword [ebp - 0xcb4]
mov edi, eax
je 0x44e769
mov edi, dword [ebp - 0x54]
call fcn.004662d0
jmp case.default.0x44e7fd
cmp cl, 0x12
je 0x44e9cc
cmp cl, 0x6a
je 0x44e9cc
mov edx, dword [ebp + 0x14]
test edx, edx
je 0x44e7e9
mov ecx, dword [eax + 8]
cmp ecx, 1
je 0x44e7d2
cmp ecx, 2
je 0x44e7d2
cmp ecx, 5
je 0x44e7d2
cmp ecx, 3
jne 0x44e7e9
mov ecx, dword [eax]
cmp byte [ecx + 0x17], 0
jne 0x44e7a4
mov ecx, dword [ecx + 0xc]
test byte [ecx + 0x15], 2
je 0x44e7e9
mov dword [edx + 8], 5
mov eax, dword [eax]
cmp byte [eax + 0x17], 0
jne 0x44e7bc
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [edx], eax
mov edx, dword [eax]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 0x49588a
jmp 0x44ea3f
mov dword [edx + 8], ecx
mov ecx, dword [eax]
mov dword [edx], ecx
mov eax, dword [eax + 4]
mov dword [edx + 4], eax
mov eax, 0x49588a
jmp 0x44ea3f
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x34], edx
cmp ecx, 5
ja case.default.0x44e7fd
jmp dword [ecx*4 + 0x44ec24]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov edi, dword [ebp - 0x34]
push ecx
push edx
call fcn.00401050
add esp, 8
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x44e820
sub eax, edx
lea ecx, [eax + 1]
mov eax, dword [ebp + 0x18]
add dword [eax], ecx
jmp case.default.0x44e7fd
mov edx, dword [0x49d3c8]
fld qword [eax]
mov edi, dword [ebp - 0x34]
sub esp, 8
add edx, 0x74
fstp qword [esp]
push edx
mov esi, 0x100
call fcn.00463ff0
lea ecx, [eax + 1]
mov eax, dword [ebp + 0x18]
add esp, 0xc
add dword [eax], ecx
jmp case.default.0x44e7fd
cmp ecx, 3
jne 0x44e881
mov ecx, dword [eax]
push 1
call fcn.00401230
mov esi, eax
mov eax, dword [edi]
mov dword [ebp + 0x14], esi
call fcn.00412120
jmp 0x44e89c
mov eax, dword [eax]
mov dword [ebp + 0x14], eax
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x44e890
mov esi, dword [ebp + 0x14]
sub eax, edx
mov edx, dword [ebp + 0xc]
lea ebx, [eax + 1]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
add edx, edx
movzx eax, word [ecx + edx*8 + 2]
mov edx, 0xff
cmp ax, dx
jae 0x44e8bb
mov eax, edx
mov ecx, dword [ebp + 0x28]
lea eax, [eax + ecx + 1]
cmp ebx, eax
jbe 0x44e9b4
mov edx, dword [ebp + 0x20]
mov esi, dword [edx]
sub esi, eax
add esi, ebx
push esi
mov dword [ebp + 0x28], esi
call fcn.00476de3
mov edi, eax
add esp, 4
test edi, edi
jne 0x44e90e
push 0x49588a
mov ecx, dword [ebp + 8]
push 0
push str.Out_of_memory.__The_current_thread_will_exit.
call fcn.004296d0
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x34], 0
mov dword [eax], 0
jmp case.default.0x44e7fd
cmp esi, 0x400000
jbe 0x44e91c
inc dword [0x4a2b58]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov eax, dword [ecx]
mov esi, dword [edx]
sub esi, eax
je 0x44e935
push esi
push eax
push edi
call fcn.0047b470
add esp, 0xc
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x18]
lea eax, [esi + edi]
push ebx
push edx
push eax
mov dword [ecx], eax
mov dword [ebp - 0x34], eax
call fcn.0047b470
mov eax, dword [ebp + 0x1c]
mov ecx, dword [eax]
add esp, 0xc
push ecx
call fcn.004785bf
mov edx, dword [ebp + 0x20]
mov eax, dword [edx]
add esp, 4
cmp eax, 0x400000
jbe 0x44e96e
dec dword [0x4a2b58]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
add eax, edx
mov dword [ebp + 8], eax
xor eax, eax
cmp dword [ebp + 0xc], eax
jle 0x44e9a0
mov ecx, dword [ebp + 0x24]
mov ecx, dword [ecx + eax*4]
cmp ecx, edx
jb 0x44e99a
cmp ecx, dword [ebp + 8]
jae 0x44e99a
mov esi, edi
sub esi, edx
add esi, ecx
mov ecx, dword [ebp + 0x24]
mov dword [ecx + eax*4], esi
inc eax
cmp eax, dword [ebp + 0xc]
jl 0x44e97f
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x20]
mov dword [edx], edi
mov edi, dword [ebp + 0x18]
add dword [edi], ebx
mov dword [ecx], eax
jmp case.default.0x44e7fd
mov edi, dword [ebp + 0x18]
mov eax, dword [edi]
cmp eax, esi
je 0x44e9c8
push ebx
push esi
push eax
call fcn.004777f0
add esp, 0xc
add dword [edi], ebx
jmp case.default.0x44e7fd
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.default.0x44e9d8
jmp dword [ecx*4 + 0x44ec3c]
mov edx, dword [eax]
or edx, dword [eax + 4]
jne case.0x44e9d8.5
mov dword [ebp - 0x34], 0x49588a
mov esi, dword [ebp - 0x28]
test esi, esi
je 0x44ea15
jmp 0x44ea00
mov ecx, dword [ebp + esi*4 - 0x4b8]
dec esi
push ecx
call fcn.004785bf
add esp, 4
test esi, esi
jne 0x44ea00
mov esi, dword [ebp - 0x78]
test esi, esi
je 0x44ea3c
mov edi, 5
mov eax, dword [ebp + esi*4 - 0xcb8]
dec esi
cmp dword [eax + 8], edi
jne 0x44ea38
mov eax, dword [eax]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
test esi, esi
jne 0x44ea21
mov eax, dword [ebp - 0x34]
lea esp, [ebp - 0xdc4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
fld qword [eax]
fldz
fucompp
fnstsw ax
test ah, 0x44
jp case.0x44e9d8.5
jmp case.0x44e7fd.5
mov ecx, dword [eax + 4]
test ecx, ecx
je case.0x44e9d8.0
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jmp 0x44e9e4
mov eax, dword [eax]
call fcn.004456b0
jmp 0x44ea8d
mov esi, dword [eax]
call fcn.00445710
jmp 0x44ea8d
mov eax, dword [ebp + 8]
test eax, eax
je case.0x44e7fd.5
mov dword [ebp - 0x34], 0x4916f4
jmp case.default.0x44e7fd
push es
inc esp
dec ecx
add byte [ecx + 0x5e89085e], cl
or al, 0x89
pop esi
adc byte [ecx + 0x5e89145e], cl
sbb byte [ecx - 0x34c4e3a2], cl
je 0x45e595
mov dword [esp + 0x30], 5
mov dword [esp + 0x28], esi
cmp ecx, edx
jle 0x45e595
mov edi, dword [ebp + 8]
mov dword [esp + 0xc], edx
mov ecx, dword [esi]
mov ecx, dword [ecx]
push 2
push edi
push 1
lea eax, [esp + 0x44]
lea edx, [esp + 0x34]
mov dword [esp + 0x20], eax
push edx
lea eax, [esp + 0x20]
push eax
push esi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x28], 0x49588a
mov dword [esp + 0x34], ebx
call ecx
cmp dword [esp + 0x18], 5
jne 0x45e56f
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x45e580
push eax
call fcn.004785bf
add esp, 4
mov eax, dword [esp + 0xc]
add eax, 2
add edi, 8
mov dword [esp + 0xc], eax
cmp eax, dword [ebp + 0xc]
jl 0x45e52e
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
mov dword [esp + 0x18], eax
cmp dword [esp + 0x100], edx
je 0x46bdc8
mov ecx, dword [esp + 0xfc]
mov edx, dword [ecx + 0x10]
add edx, 0xf9c
cmp ebx, edx
ja 0x46e724
mov ecx, dword [esp + 0x90]
cmp ebx, ecx
jae 0x46bd4b
mov dword [esp + 0x14], ecx
mov ebx, ecx
mov eax, dword [esp + 0x100]
mov eax, dword [eax]
mov edx, ebx
sub edx, ecx
mov ecx, 0x7fffffeb
sub ecx, eax
cmp ecx, edx
jl 0x46e747
sub eax, dword [esp + 0x90]
mov edx, dword [esp + 0x100]
add eax, ebx
mov dword [edx], eax
xor edx, edx
cmp ebp, edx
je 0x46bdb5
cmp ebp, esi
jbe 0x46bdbb
mov eax, ebx
sub eax, ebp
push eax
push ebp
push esi
call fcn.004777f0
mov edi, dword [esp + 0x1c]
mov ecx, esi
sub ecx, ebp
add ebx, ecx
mov ecx, dword [esp + 0x68]
mov ebp, esi
add esp, 0xc
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], ebp
xor edx, edx
mov dword [esp + 0x90], ebx
jmp 0x46bde1
mov dword [esp + 0x14], esi
mov ebx, esi
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x90], ebx
jmp 0x46bde1
mov eax, dword [esp + 0xfc]
mov esi, dword [eax + 0x10]
add esi, 0xf9c
cmp dword [eax + 0x24], esi
ja 0x46e76a
cmp dword [esp + 0x50], edx
je 0x46bed2
cmp dword [esp + 0x18], edx
je 0x46bed2
cmp dword [esp + 0x18], 0x5c
jne 0x46be1e
cmp byte [edi + 1], 0x45
jne 0x46be1e
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
inc edi
mov dword [esp + 0x50], edx
inc edi
xor edx, edx
jmp 0x46bd0a
cmp ecx, edx
je 0x46be5b
cmp dword [esp + 0x100], edx
jne 0x46be57
movzx edx, byte [ecx + 6]
movzx eax, byte [ecx + 7]
shl edx, 8
or edx, eax
mov eax, edi
sub eax, edx
mov edx, dword [esp + 0xfc]
sub eax, dword [edx + 0x18]
mov edx, eax
sar edx, 8
mov byte [ecx + 8], dl
mov byte [ecx + 9], al
mov edi, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x5c], edx
test dword [esp + 0x2c], 0x4000
je case.0x46c0ab.1
mov esi, dword [esp + 0xfc]
mov word [ebx], 0xff53
mov dword [ebx + 2], edx
mov eax, edi
mov ecx, eax
sub ecx, dword [esi + 0x18]
mov dword [esp + 0x5c], ebx
sar ecx, 8
mov byte [ebx + 6], cl
sub al, byte [esi + 0x18]
mov word [ebx + 8], 0
mov byte [ebx + 7], al
add ebx, 0xa
mov dword [esp + 0x14], ebx
mov al, byte [esp + 0x18]
mov dl, byte [esp + 0x2c]
and dl, 1
or dl, 0x1c
mov byte [ebx], dl
mov dword [esp + 0x24], ebx
mov byte [ebx + 1], al
add ebx, 2
mov dword [esp + 0x14], ebx
cmp al, 0xd
je 0x46bec2
cmp al, 0xa
jne 0x46e6a6
mov edx, dword [esp + 0xfc]
or dword [edx + 0x48], 0x20
jmp 0x46e6ad
mov eax, dword [esp + 0x18]
cmp eax, 0x2a
je 0x46bff5
cmp eax, 0x2b
je 0x46bff5
cmp eax, 0x3f
je 0x46bff5
cmp eax, 0x7b
jne 0x46bf06
lea eax, [edi + 1]
call fcn.00469fa0
test eax, eax
jne 0x46bff5
mov esi, dword [esp + 0x5c]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
cmp esi, ecx
je 0x46bf60
mov eax, dword [esp + 0xa4]
mov edx, eax
dec eax
mov dword [esp + 0xa4], eax
test edx, edx
jg 0x46bf60
cmp dword [esp + 0x100], ecx
jne 0x46bf5c
movzx edx, byte [esi + 6]
movzx eax, byte [esi + 7]
shl edx, 8
or edx, eax
mov eax, edi
sub eax, edx
mov edx, dword [esp + 0xfc]
sub eax, dword [edx + 0x18]
mov edx, eax
sar edx, 8
mov byte [esi + 8], dl
mov byte [esi + 9], al
mov edi, dword [esp + 0x10]
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0x2c]
test dl, 8
je 0x46c040
mov eax, dword [esp + 0xfc]
mov ecx, dword [eax + 0xc]
mov edx, dword [esp + 0x18]
test byte [edx + ecx], 1
jne 0x46c0d6
cmp edx, 0x23
jne 0x46c049
inc edi
mov dword [esp + 0x10], edi
mov cl, byte [edi]
test cl, cl
je 0x46bfe4
lea esp, [esp]
mov edx, dword [eax + 0x58]
test edx, edx
je 0x46c002
mov eax, dword [eax + 0x1c]
cmp edi, eax
jae 0x46c029
mov esi, dword [esp + 0xfc]
push edx
add esi, 0x5c
mov edx, eax
mov ecx, edi
call fcn.004758c0
add esp, 4
test eax, eax
je 0x46c029
mov eax, dword [esp + 0xfc]
mov ecx, dword [eax + 0x5c]
lea edi, [edi + ecx - 1]
mov dword [esp + 0x10], edi
cmp byte [edi], 0
jne 0x46c0d6
mov esi, dword [esp + 0xfc]
mov dword [esp + 0x18], 0
jmp 0x46c04b
mov dword [esp + 0x1c], 1
jmp 0x46bf60
mov edx, dword [eax + 0x5c]
mov eax, dword [eax + 0x1c]
sub eax, edx
cmp edi, eax
ja 0x46c029
mov eax, dword [esp + 0xfc]
cmp cl, byte [eax + 0x60]
jne 0x46c029
cmp edx, 1
je 0x46bfc9
mov cl, byte [edi + 1]
mov edx, eax
cmp cl, byte [edx + 0x61]
je 0x46bfc9
inc edi
mov dword [esp + 0x10], edi
mov cl, byte [edi]
test cl, cl
je 0x46bfe4
mov eax, dword [esp + 0xfc]
jmp 0x46bfa0
mov esi, dword [esp + 0xfc]
jmp 0x46c053
mov esi, eax
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x24]
xor ecx, ecx
test edx, 0x4000
je 0x46c095
cmp dword [esp + 0x1c], ecx
jne 0x46c095
mov word [ebx], 0xff53
mov dword [ebx + 2], ecx
mov eax, edi
mov edx, eax
sub edx, dword [esi + 0x18]
mov dword [esp + 0x5c], ebx
sar edx, 8
mov byte [ebx + 6], dl
sub al, byte [esi + 0x18]
mov edx, dword [esp + 0x2c]
mov byte [ebx + 7], al
mov word [ebx + 8], cx
mov edi, dword [esp + 0x10]
add ebx, 0xa
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x18], 0x7c
ja case.0x46c0ab.1
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x46ec8c]
jmp dword [eax*4 + 0x46ec58]
test dl, 2
je 0x46c0c6
cmp dword [esp + 0x30], 0xfffffffe
jne 0x46c0c6
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x24], ecx
mov byte [ebx], 0x1a
inc ebx
mov dword [esp + 0x14], ebx
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
inc edi
xor edx, edx
jmp 0x46bd0a
mov dword [esp + 0x24], ecx
mov byte [ebx], 0x1b
jmp 0x46c0cd
mov eax, dword [esp + 0x30]
cmp eax, 0xfffffffe
jne 0x46c106
or eax, 0xffffffff
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x48]
shr edx, 2
and dl, 1
or dl, 0xc
mov dword [esp + 0x54], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x24], ebx
mov byte [ebx], dl
jmp 0x46c0cd
test dword [esi + 0x44], 0x2000000
je case.0x46c0ab.1
mov edx, dword [esp + 0xec]
mov dword [edx], 0x40
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov al, byte [edi + 1]
mov dword [esp + 0x24], ebx
cmp al, 0x3a
je 0x46c166
cmp al, 0x2e
je 0x46c166
cmp al, 0x3d
jne 0x46c17d
lea edx, [esp + 0x6c]
push edx
mov eax, edi
call fcn.0046b3c0
add esp, 4
test eax, eax
jne 0x46e815
xor ebp, ebp
mov dword [esp + 0x28], ebp
inc edi
mov dword [esp + 0x10], edi
movzx esi, byte [edi]
cmp esi, 0x5c
jne 0x46c1b3
inc edi
cmp byte [edi], 0x45
je 0x46c183
push 3
push 0x497ad0
push edi
call fcn.0047b9c1
mov edi, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
jne 0x46c218
add edi, 3
jmp 0x46c183
test ebp, ebp
jne 0x46c1c1
cmp esi, 0x5e
jne 0x46c1c1
lea ebp, [esi - 0x5d]
jmp 0x46c17f
cmp esi, 0x5d
jne 0x46c218
mov eax, dword [esp + 0xfc]
test dword [eax + 0x44], 0x2000000
je 0x46c218
mov eax, dword [esp + 0x30]
mov ecx, ebp
neg ecx
sbb cl, cl
and cl, 0x9a
add cl, 0x73
mov byte [ebx], cl
inc ebx
mov dword [esp + 0x14], ebx
cmp eax, 0xfffffffe
jne 0x46c1f9
or eax, 0xffffffff
mov dword [esp + 0x30], eax
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
inc edi
mov dword [esp + 0x54], eax
xor edx, edx
jmp 0x46bd0a
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
cmp esi, eax
je 0x46e8a9
mov edi, edi
cmp dword [esp + 0x50], 0
je 0x46c288
cmp esi, 0x5c
jne 0x46c441
cmp byte [edi + 1], 0x45
jne 0x46c441
mov dword [esp + 0x50], 0
inc edi
jmp 0x46c532
cmp esi, 0x5b
jne 0x46c3f7
mov al, byte [edi + 1]
cmp al, 0x3a
je 0x46c2a4
cmp al, 0x2e
je 0x46c2a4
cmp al, 0x3d
jne 0x46c441
lea edx, [esp + 0x6c]
push edx
mov eax, edi
call fcn.0046b3c0
add esp, 4
test eax, eax
je 0x46c441
cmp byte [edi + 1], 0x3a
mov eax, dword [esp + 0xfc]
mov ebp, dword [eax + 8]
mov dword [esp + 0x40], 0
jne 0x46e844
add edi, 2
mov dword [esp + 0x10], edi
cmp byte [edi], 0x5e
jne 0x46c2f6
mov eax, 1
add edi, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], edi
mov ebx, dword [esp + 0x6c]
sub ebx, edi
push edi
call fcn.0046b410
add esp, 4
test eax, eax
js 0x46e867
test byte [esp + 0x2c], 1
je 0x46c31b
cmp eax, 2
jg 0x46c31b
xor eax, eax
lea eax, [eax + eax*2]
mov esi, dword [eax*4 + 0x496f18]
add esi, ebp
mov ecx, 8
lea edi, [esp + 0xbc]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax*4 + 0x496f1c]
mov esi, dword [eax*4 + 0x496f20]
test ecx, ecx
js 0x46c374
xor eax, eax
add ecx, ebp
test esi, esi
js 0x46c362
nop
mov dl, byte [ecx + eax]
or byte [esp + eax + 0xbc], dl
inc eax
cmp eax, 0x20
jl 0x46c350
jmp 0x46c374
mov dl, byte [ecx + eax]
not dl
and byte [esp + eax + 0xbc], dl
inc eax
cmp eax, 0x20
jl 0x46c362
test esi, esi
jns 0x46c37a
neg esi
cmp esi, 1
jne 0x46c389
and byte [esp + 0xbd], 0xc3
jmp 0x46c396
cmp esi, 2
jne 0x46c396
and byte [esp + 0xc7], 0x7f
xor eax, eax
cmp dword [esp + 0x40], eax
je 0x46c3d0
mov edi, edi
mov cl, byte [esp + eax + 0xbc]
not cl
or byte [esp + eax + 0x70], cl
inc eax
cmp eax, 0x20
jl 0x46c3a0
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x14]
inc edi
mov dword [esp + 0x18], 0xa
jmp 0x46c532
mov dl, byte [esp + eax + 0xbc]
or byte [esp + eax + 0x70], dl
inc eax
cmp eax, 0x20
jl 0x46c3d0
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x14]
inc edi
mov dword [esp + 0x18], 0xa
jmp 0x46c532
cmp esi, 0x5c
jne 0x46c441
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0xec]
mov edx, dword [esp + 0xfc]
push 1
push eax
mov eax, dword [edx + 0x34]
lea ecx, [esp + 0x18]
push edi
push ecx
call fcn.00469c20
add esp, 0x10
cmp dword [edi], 0
mov esi, eax
jne 0x46d4b6
mov ecx, esi
neg ecx
cmp ecx, 5
jne 0x46c4bf
lea esi, [ecx + 3]
mov edi, dword [esp + 0x10]
cmp byte [edi + 1], 0x5c
jne 0x46c467
xor eax, eax
lea esp, [esp]
cmp byte [edi + 2], 0x45
jne 0x46c467
add edi, 2
mov dword [esp + 0x10], edi
cmp byte [edi + 1], 0x5c
mov dword [esp + 0x50], eax
je 0x46c450
mov ebp, edi
cmp esi, 0xd
je 0x46c473
cmp esi, 0xa
jne 0x46c47e
mov eax, dword [esp + 0xfc]
or dword [eax + 0x48], 0x20
mov ecx, dword [esp + 0x50]
test ecx, ecx
jne 0x46c84b
cmp byte [edi + 1], 0x2d
jne 0x46c84b
add edi, 2
mov dword [esp + 0x10], edi
cmp byte [edi], 0x5c
jne 0x46c71f
cmp byte [edi + 1], 0x45
jne 0x46c6eb
add edi, 2
mov dword [esp + 0x10], edi
cmp byte [edi], 0x5c
je 0x46c4a4
jmp 0x46c71f
cmp ecx, 0x1a
jne 0x46c4e3
mov edi, dword [esp + 0x10]
cmp byte [edi + 1], 0x5c
jne 0x46c4d9
cmp byte [edi + 2], 0x45
jne 0x46c4d9
add edi, 2
jmp 0x46c532
mov dword [esp + 0x50], 1
jmp 0x46c532
cmp ecx, 0x19
je 0x46c52e
test esi, esi
jns 0x46c43d
mov eax, dword [esp + 0xfc]
mov eax, dword [eax + 8]
mov edx, 2
add dword [esp + 0x18], edx
add ecx, 0xfffffffa
cmp ecx, 0xf
ja case.0x46c50f.12
jmp dword [ecx*4 + 0x46ed0c]
xor esi, esi
jmp 0x46c520
mov cl, byte [eax + esi + 0x40]
or byte [esp + esi + 0x70], cl
inc esi
cmp esi, 0x20
jl 0x46c520
mov edi, dword [esp + 0x10]
inc edi
mov dword [esp + 0x10], edi
movzx esi, byte [edi]
test esi, esi
je 0x46e8a9
cmp esi, 0x5d
jne 0x46c260
cmp dword [esp + 0x50], 0
jne 0x46c267
cmp dword [esp + 0x18], 1
jne 0x46c8ac
cmp dword [esp + 0x28], 0
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x4c], ecx
je 0x46c8a3
mov eax, dword [esp + 0x30]
cmp eax, 0xfffffffe
jne 0x46c584
or eax, 0xffffffff
mov dword [esp + 0x30], eax
mov dl, byte [esp + 0x1c]
mov byte [ebx], 0x1e
mov byte [ebx + 1], dl
mov dword [esp + 0x54], eax
add ebx, 2
jmp 0x46c0ce
mov dword [esp + 0x20], 1
xor esi, esi
mov dl, byte [eax + esi + 0x40]
not dl
or byte [esp + esi + 0x70], dl
inc esi
cmp esi, 0x20
jl 0x46c5a4
jmp 0x46c52e
xor esi, esi
jmp 0x46c5c0
mov cl, byte [eax + esi + 0xa0]
or byte [esp + esi + 0x70], cl
inc esi
cmp esi, 0x20
jl 0x46c5c0
jmp 0x46c52e
mov dword [esp + 0x20], 1
xor esi, esi
mov dl, byte [eax + esi + 0xa0]
not dl
or byte [esp + esi + 0x70], dl
inc esi
cmp esi, 0x20
jl 0x46c5e0
jmp 0x46c52e
mov edi, eax
lea eax, [esp + 0x70]
xor esi, esi
sub edi, eax
lea ecx, [esp + esi + 0x70]
mov dl, byte [edi + ecx]
or byte [ecx], dl
inc esi
cmp esi, 0x20
jl 0x46c602
and byte [esp + 0x71], 0xf7
jmp 0x46c52e
mov edi, eax
lea eax, [esp + 0x70]
xor esi, esi
mov dword [esp + 0x20], 1
sub edi, eax
lea ecx, [ecx]
lea ecx, [esp + esi + 0x70]
mov dl, byte [edi + ecx]
not dl
or byte [ecx], dl
inc esi
cmp esi, 0x20
jl 0x46c630
or byte [esp + 0x71], 8
jmp 0x46c52e
or byte [esp + 0x71], dl
or byte [esp + 0x74], 1
or byte [esp + 0x84], 1
jmp 0x46c52e
xor eax, eax
mov ecx, eax
dec ecx
mov edx, 0xff
je 0x46c67e
sub ecx, 3
je 0x46c677
sub ecx, 0x10
jne 0x46c683
mov edx, 0xfe
jmp 0x46c683
mov edx, 0xfd
or byte [esp + eax + 0x70], dl
inc eax
cmp eax, 0x20
jl 0x46c663
jmp 0x46c52e
or byte [esp + 0x71], 0x3c
or byte [esp + 0x80], 0x20
jmp 0x46c52e
xor eax, eax
mov ecx, eax
dec ecx
mov edx, 0xff
je 0x46c6bc
sub ecx, 0xf
jne 0x46c6c1
mov edx, 0xdf
jmp 0x46c6c1
mov edx, 0xc3
or byte [esp + eax + 0x70], dl
inc eax
cmp eax, 0x20
jl 0x46c6a6
jmp 0x46c52e
test byte [esp + 0x2c], 0x40
jne 0x46e879
mov edi, dword [esp + 0x10]
sub dword [esp + 0x18], edx
movzx esi, byte [edi]
jmp 0x46c441
cmp byte [edi], 0x5c
jne 0x46c71f
cmp byte [edi + 1], 0x51
jne 0x46c71f
add edi, 2
mov dword [esp + 0x10], edi
cmp byte [edi], 0x5c
jne 0x46c716
cmp byte [edi + 1], 0x45
jne 0x46c716
add edi, 2
mov dword [esp + 0x10], edi
cmp byte [edi], 0x5c
je 0x46c6f0
jmp 0x46c71f
mov ecx, 1
mov dword [esp + 0x50], ecx
mov al, byte [edi]
test al, al
je 0x46c845
test ecx, ecx
jne 0x46c735
cmp al, 0x5d
je 0x46c845
movzx eax, al
mov dword [esp + 0x4c], eax
test ecx, ecx
jne 0x46c792
cmp eax, 0x5c
jne 0x46c792
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0xec]
mov edx, dword [esp + 0xfc]
push 1
push eax
mov eax, dword [edx + 0x34]
lea ecx, [esp + 0x18]
push edi
push ecx
call fcn.00469c20
add esp, 0x10
cmp dword [edi], 0
mov dword [esp + 0x4c], eax
jne 0x46d4b6
test eax, eax
jns 0x46c78e
cmp eax, 0xfffffffb
jne 0x46c845
mov eax, 8
mov dword [esp + 0x4c], eax
mov edi, dword [esp + 0x10]
cmp eax, esi
jl 0x46e886
je 0x46c84b
cmp eax, 0xd
je 0x46c7aa
cmp eax, 0xa
jne 0x46c7b5
mov ecx, dword [esp + 0xfc]
or dword [ecx + 0x48], 0x20
mov edx, dword [esp + 0x18]
mov ecx, eax
sub ecx, esi
cmp dword [esp + 0x100], 0
lea ecx, [edx + ecx + 1]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
jne 0x46c532
cmp esi, eax
jg 0x46c532
mov eax, dword [esp + 0x2c]
and eax, 1
mov dword [esp + 0x60], eax
lea ebx, [ebx]
mov eax, esi
cdq
and edx, 7
add eax, edx
mov ecx, esi
and ecx, 7
mov dl, 1
shl dl, cl
sar eax, 3
lea ebp, [esp + eax + 0x70]
or byte [ebp], dl
cmp dword [esp + 0x60], 0
je 0x46c839
mov eax, dword [esp + 0xfc]
mov ecx, dword [eax + 4]
movzx ecx, byte [ecx + esi]
mov eax, ecx
cdq
and edx, 7
add eax, edx
and ecx, 7
mov dl, 1
sar eax, 3
shl dl, cl
lea ebp, [esp + eax + 0x70]
or byte [ebp], dl
inc esi
cmp esi, dword [esp + 0x4c]
jle 0x46c7f0
jmp 0x46c532
mov edi, ebp
mov dword [esp + 0x10], edi
mov eax, esi
cdq
and edx, 7
add eax, edx
sar eax, 3
lea ebp, [esp + eax + 0x70]
mov ecx, esi
and ecx, 7
mov al, 1
shl al, cl
or byte [ebp], al
test byte [esp + 0x2c], 1
je 0x46c896
mov ecx, dword [esp + 0xfc]
mov edx, dword [ecx + 4]
movzx esi, byte [edx + esi]
mov eax, esi
cdq
and edx, 7
add eax, edx
sar eax, 3
lea ebp, [esp + eax + 0x70]
mov ecx, esi
and ecx, 7
mov al, 1
shl al, cl
or byte [ebp], al
inc dword [esp + 0x18]
mov dword [esp + 0x1c], esi
jmp 0x46c532
mov al, byte [esp + 0x1c]
jmp 0x46be9c
mov eax, dword [esp + 0x30]
cmp eax, 0xfffffffe
jne 0x46c8bc
or eax, 0xffffffff
mov dword [esp + 0x30], eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x20]
setne cl
add cl, 0x4e
mov byte [ebx], cl
inc ebx
test eax, eax
je 0x46c907
cmp dword [esp + 0x100], 0
jne 0x46c914
lea esi, [esp + 0x70]
mov eax, ebx
sub esi, ebx
mov edi, 0x20
mov dl, byte [esi + eax]
not dl
mov byte [eax], dl
inc eax
dec edi
jne 0x46c8f4
add ebx, 0x20
jmp 0x46c0ce
mov ecx, 8
lea esi, [esp + 0x70]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
add ebx, 0x20
jmp 0x46c0ce
cmp dword [esp + 0x1c], ecx
je case.0x46c0ab.1
mov esi, dword [esp + 0xec]
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x48]
lea eax, [edi + 1]
push ecx
mov edi, esi
call fcn.0046a020
add esp, 8
cmp dword [esi], 0
mov edi, eax
mov dword [esp + 0x10], edi
jne 0x46d4ba
jmp 0x46c97d
mov dword [esp + 0x38], 0xffffffff
jmp 0x46c979
mov dword [esp + 0x44], 1
mov dword [esp + 0x38], 0xffffffff
jmp 0x46c97d
mov dword [esp + 0x38], 1
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 0x38]
test ebp, ebp
je 0x46e8cc
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x46c9a1
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x48], ecx
sub eax, edx
neg eax
sbb eax, eax
and eax, 0x200
mov dword [esp + 0xa8], eax
xor esi, esi
mov dword [esp + 0x3c], ebp
mov al, byte [edi + 1]
mov dword [esp + 0x34], esi
mov dword [esp + 0x20], esi
cmp al, 0x2b
jne 0x46c9da
xor eax, eax
mov esi, 1
inc edi
mov dword [esp + 0x20], esi
mov dword [esp + 0x10], edi
jmp 0x46c9f3
cmp al, 0x3f
jne 0x46c9ec
mov eax, dword [esp + 0xb4]
inc edi
mov dword [esp + 0x10], edi
jmp 0x46c9f3
mov eax, dword [esp + 0xac]
mov cl, byte [ebp]
mov dword [esp + 0x28], eax
cmp cl, 0x1c
je 0x46cfb4
cmp cl, 0x1d
je 0x46cfb4
cmp cl, 0x1e
jne 0x46ca26
movzx edx, byte [ebp + 1]
mov dword [esp + 0x34], 0xd
mov dword [esp + 0x18], edx
jmp 0x46cfda
cmp cl, 0x17
jae 0x46ca56
movzx ecx, cl
mov dword [esp + 0x34], 0x1a
mov dword [esp + 0x18], ecx
test esi, esi
jne 0x46d013
cmp dword [esp + 0x38], esi
jge 0x46d013
mov edx, dword [esp + 0x2c]
push edx
jmp 0x46cfe9
cmp cl, 0x4e
je 0x46cefc
cmp cl, 0x4f
je 0x46cefc
cmp cl, 0x51
je 0x46cefc
cmp cl, 0x5e
je 0x46cab1
cmp cl, 0x5f
je 0x46cab1
cmp cl, 0x5d
je 0x46cab1
cmp cl, 0x60
je 0x46cab1
cmp cl, 0x73
je 0x46cf08
mov edx, dword [esp + 0xec]
mov dword [edx], 0xb
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
xor esi, esi
mov eax, ebx
sub eax, ebp
mov dword [esp + 0x34], esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], esi
cmp cl, 0x60
jne 0x46cad2
cmp byte [ebp + 3], 0x68
je 0x46e8ef
cmp edx, 0xffffffff
jne 0x46cafc
mov eax, ebp
lea esp, [esp]
movzx ecx, byte [eax + 1]
movzx esi, byte [eax + 2]
shl ecx, 8
or ecx, esi
add eax, ecx
cmp byte [eax], 0x55
jne 0x46cae0
mov ecx, ebx
sub ecx, eax
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x46cbcf
mov byte [ebx], al
cmp edx, 1
jg 0x46cb6e
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0xfc]
push edx
push eax
push 1
push ebp
call fcn.0046b460
mov ecx, dword [esp + 0x28]
push ecx
lea edi, [ebp + 1]
push ebp
push edi
call fcn.004777f0
inc ebx
add esp, 0x1c
cmp dword [esp + 0x38], 0
mov dword [esp + 0x14], ebx
jne 0x46cb4f
mov byte [ebp], 0x76
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov dl, byte [esp + 0x28]
add dl, 0x69
dec dword [esp + 0x38]
mov byte [ebp], dl
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x10]
jmp 0x46ccea
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0xfc]
push eax
push ecx
push 4
push ebp
call fcn.0046b460
mov edx, dword [esp + 0x28]
push edx
lea eax, [ebp + 4]
push ebp
push eax
call fcn.004777f0
mov cl, byte [esp + 0x44]
add cl, 0x69
mov byte [ebp], cl
mov byte [ebp + 1], 0x5e
add ebp, 2
mov word [ebp], 0
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x38], ebp
add ebp, 2
add ebx, 4
add esp, 0x1c
dec dword [esp + 0x38]
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x14], ebx
jmp 0x46ccea
cmp eax, 1
jle 0x46ccda
mov edx, dword [esp + 0x100]
test edx, edx
je 0x46cc26
mov eax, dword [esp + 0x44]
dec eax
mov dword [esp + 0x60], eax
imul eax, dword [esp + 0x64]
fild dword [esp + 0x60]
fimul dword [esp + 0x64]
mov ecx, eax
fcomp qword [0x497c00]
fnstsw ax
test ah, 0x41
je 0x46e7dc
mov eax, dword [edx]
mov esi, 0x7fffffeb
sub esi, eax
cmp esi, ecx
jl 0x46e7dc
add ecx, eax
mov dword [edx], ecx
jmp 0x46ccda
cmp dword [esp + 0xa0], 0
je 0x46cc3f
cmp dword [esp + 0x48], 0
jge 0x46cc3f
mov edx, dword [esp + 0x30]
mov dword [esp + 0x48], edx
cmp dword [esp + 0x44], 1
jle 0x46ccda
mov eax, dword [esp + 0x44]
dec eax
mov dword [esp + 0x40], eax
jmp 0x46cc60
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0xfc]
mov edi, dword [ecx + 0x24]
push edx
push ebp
push ebx
call fcn.0047b470
mov esi, dword [esp + 0x64]
mov eax, dword [esp + 0x24]
add esp, 0xc
cmp esi, edi
jae 0x46ccc6
movzx ecx, byte [esi]
movzx edx, byte [esi + 1]
shl ecx, 8
or ecx, edx
mov edx, dword [esp + 0xfc]
mov edx, dword [edx + 0x24]
add ecx, eax
sar ecx, 8
mov byte [edx], cl
mov cl, byte [esi + 1]
mov edx, dword [esp + 0xfc]
mov edx, dword [edx + 0x24]
add cl, al
mov byte [edx + 1], cl
mov ecx, dword [esp + 0xfc]
add dword [ecx + 0x24], 2
add esi, 2
cmp esi, edi
jb 0x46cc85
add ebx, eax
dec dword [esp + 0x40]
mov dword [esp + 0x58], edi
jne 0x46cc60
mov edi, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
mov ebp, dword [esp + 0x38]
test ebp, ebp
jle 0x46ccec
sub ebp, dword [esp + 0x44]
mov dword [esp + 0x38], ebp
test ebp, ebp
js 0x46ce8a
mov edx, dword [esp + 0x100]
test edx, edx
je 0x46cd45
test ebp, ebp
jle 0x46cd45
mov eax, dword [esp + 0x64]
add eax, 7
mov dword [esp + 0x60], eax
imul eax, ebp
fild dword [esp + 0x60]
fimul dword [esp + 0x38]
lea ecx, [eax - 6]
fcomp qword [0x497c00]
fnstsw ax
test ah, 0x41
je 0x46e912
mov eax, dword [edx]
mov esi, 0x7fffffeb
sub esi, eax
cmp esi, ecx
jl 0x46e912
add ecx, eax
mov dword [edx], ecx
jmp 0x46ce38
dec ebp
mov dword [esp + 0x40], ebp
js 0x46ce38
mov al, byte [esp + 0x28]
add al, 0x69
mov byte [esp + 0x6b], al
lea ebx, [ebx]
mov eax, dword [esp + 0xfc]
mov ecx, dword [eax + 0x24]
mov dl, byte [esp + 0x6b]
mov byte [ebx], dl
inc ebx
mov dword [esp + 0x28], ecx
test ebp, ebp
je 0x46cd9e
mov ecx, dword [esp + 0x1c]
mov byte [ebx], 0x5e
inc ebx
test ecx, ecx
jne 0x46cd89
xor eax, eax
jmp 0x46cd8d
mov eax, ebx
sub eax, ecx
mov ecx, eax
sar ecx, 8
mov dword [esp + 0x1c], ebx
mov byte [ebx], cl
mov byte [ebx + 1], al
add ebx, 2
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
push edx
push eax
push ebx
call fcn.0047b470
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0x24]
add esp, 0xc
cmp esi, dword [esp + 0x28]
jae 0x46ce1b
mov edi, ebp
neg edi
sbb edi, edi
and edi, 3
inc edi
mov eax, ebp
neg eax
sbb al, al
and al, 3
inc al
movzx edx, byte [esi]
movzx ebp, byte [esi + 1]
shl edx, 8
or edx, ebp
mov ebp, dword [esp + 0xfc]
add edx, edi
add edx, ecx
mov ecx, dword [ebp + 0x24]
sar edx, 8
mov byte [ecx], dl
mov dl, byte [esi + 1]
mov ecx, dword [esp + 0x18]
mov ebp, dword [ebp + 0x24]
add dl, al
add dl, cl
mov byte [ebp + 1], dl
mov edx, dword [esp + 0xfc]
add dword [edx + 0x24], 2
add esi, 2
cmp esi, dword [esp + 0x28]
jb 0x46cdd3
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x28]
add ebx, ecx
dec ebp
mov dword [esp + 0x58], eax
mov dword [esp + 0x40], ebp
jns 0x46cd60
mov edi, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
test edx, edx
je 0x46d197
mov eax, ebx
sub eax, edx
inc eax
mov esi, ebx
sub esi, eax
movzx ecx, byte [esi + 1]
movzx edi, byte [esi + 2]
shl ecx, 8
or ecx, edi
jne 0x46ce64
xor edx, edx
jmp 0x46ce66
sub edx, ecx
mov byte [ebx], 0x55
mov ecx, eax
sar ecx, 8
mov byte [ebx + 1], cl
mov byte [ebx + 2], al
add ebx, 3
mov byte [esi + 1], cl
mov byte [esi + 2], al
test edx, edx
jne 0x46ce48
mov dword [esp + 0x14], ebx
jmp 0x46d18f
mov al, byte [esp + 0x28]
mov esi, ebx
sub esi, dword [esp + 0x34]
add al, 0x56
movzx ecx, byte [esi + 1]
movzx edx, byte [esi + 2]
shl ecx, 8
or ecx, edx
mov edi, esi
sub edi, ecx
cmp dword [esp + 0x100], 0
mov byte [esi], al
jne 0x46d18f
cmp byte [edi], 0x5d
je 0x46d18f
mov ebp, edi
mov eax, dword [esp + 0xfc]
push eax
push 0
push esi
push ebp
call fcn.0046ab40
add esp, 0x10
test eax, eax
jne 0x46cef4
movzx ecx, byte [ebp + 1]
movzx edx, byte [ebp + 2]
shl ecx, 8
or ecx, edx
add ebp, ecx
cmp byte [ebp], 0x54
je 0x46cec2
jmp 0x46d18f
add byte [edi], 3
jmp 0x46d18f
test edx, edx
jne 0x46cf38
mov dword [esp + 0x14], ebp
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0xfc]
or dword [eax + 0x4c], ecx
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x24], 0
mov ebp, dword [esp + 0x24]
inc edi
xor edx, edx
jmp 0x46bd0a
cmp dword [esp + 0x44], 0
jne 0x46cf52
cmp edx, 0xffffffff
jne 0x46cf6c
add al, 0x46
mov byte [ebx], al
inc ebx
mov dword [esp + 0x14], ebx
jmp 0x46d18f
cmp dword [esp + 0x44], 1
jne 0x46cf7f
cmp edx, 0xffffffff
jne 0x46cf7f
add al, 0x48
mov byte [ebx], al
inc ebx
mov dword [esp + 0x14], ebx
jmp 0x46d18f
cmp edx, 1
jne 0x46cf7f
add al, 0x4a
mov byte [ebx], al
inc ebx
mov dword [esp + 0x14], ebx
jmp 0x46d18f
add al, 0x4c
mov byte [ebx], al
mov eax, dword [esp + 0x44]
mov ecx, eax
sar ecx, 8
mov byte [ebx + 1], cl
mov byte [ebx + 2], al
cmp edx, 0xffffffff
jne 0x46cf9d
xor edx, edx
mov dword [esp + 0x38], edx
mov eax, edx
sar eax, 8
mov byte [ebx + 3], al
mov byte [ebx + 4], dl
add ebx, 5
mov dword [esp + 0x14], ebx
jmp 0x46d18f
cmp dword [esp + 0x44], 1
movzx ecx, byte [ebx - 1]
mov dword [esp + 0x18], ecx
jle 0x46cfda
mov edx, dword [esp + 0xfc]
mov eax, dword [edx + 0x4c]
or eax, ecx
or eax, dword [esp + 0x98]
mov dword [esp + 0x48], eax
test esi, esi
jne 0x46d013
cmp dword [esp + 0x38], esi
jge 0x46d013
mov eax, dword [esp + 0x2c]
push eax
inc edi
push edi
mov edi, dword [esp + 0x104]
push ebp
call fcn.0046b5b0
add esp, 0xc
test eax, eax
je 0x46d00f
mov dword [esp + 0x20], 1
mov dword [esp + 0x28], 0
mov edi, dword [esp + 0x10]
mov al, byte [ebp]
cmp al, 0x10
je 0x46d02b
cmp al, 0xf
je 0x46d02b
or eax, 0xffffffff
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], eax
jmp 0x46d03b
movzx ecx, byte [ebp + 1]
movzx edx, byte [ebp + 2]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x38]
mov esi, ebx
mov dword [esp + 0x14], ebp
test ecx, ecx
je 0x46cf04
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x34]
add eax, ebx
cmp dword [esp + 0x44], 0
jne 0x46d0a2
cmp ecx, 0xffffffff
jne 0x46d072
add al, 0x1f
mov byte [ebp], al
inc ebp
mov dword [esp + 0x14], ebp
jmp 0x46d17e
cmp ecx, 1
jne 0x46d086
add al, 0x23
mov byte [ebp], al
inc ebp
mov dword [esp + 0x14], ebp
jmp 0x46d17e
add al, 0x25
mov byte [ebp], al
mov eax, ecx
sar eax, 8
mov byte [ebp + 1], al
mov byte [ebp + 2], cl
add ebp, 3
mov dword [esp + 0x14], ebp
jmp 0x46d17e
cmp dword [esp + 0x44], 1
jne 0x46d0ea
cmp ecx, 0xffffffff
jne 0x46d0bd
add al, 0x21
mov byte [ebp], al
inc ebp
mov dword [esp + 0x14], ebp
jmp 0x46d17e
mov dword [esp + 0x14], esi
cmp ecx, 1
je 0x46cf04
add al, 0x25
mov byte [esi], al
lea edx, [ecx - 1]
lea eax, [esi + 1]
sar edx, 8
dec cl
mov byte [eax], dl
mov byte [eax + 1], cl
add eax, 2
mov dword [esp + 0x14], eax
jmp 0x46d17e
mov edx, dword [esp + 0x44]
add bl, 0x27
mov byte [ebp], bl
lea esi, [ebp + 1]
mov ebx, edx
sar ebx, 8
mov byte [esi], bl
mov byte [esi + 1], dl
add esi, 2
mov dword [esp + 0x14], esi
test ecx, ecx
jns 0x46d12e
mov cl, byte [esp + 0x18]
mov byte [esi], cl
mov ecx, dword [esp + 0x1c]
inc esi
test ecx, ecx
js 0x46d127
mov dl, byte [esp + 0x24]
mov byte [esi], cl
mov byte [esi + 1], dl
add esi, 2
add al, 0x1f
mov byte [esi], al
inc esi
jmp 0x46d17a
cmp ecx, edx
je 0x46d17e
mov esi, dword [esp + 0x14]
mov bl, byte [esp + 0x18]
mov byte [esi], bl
inc esi
cmp dword [esp + 0x1c], 0
jl 0x46d156
movzx ebx, byte [esp + 0x1c]
mov byte [esi], bl
movzx ebx, byte [esp + 0x24]
mov byte [esi + 1], bl
add esi, 2
sub ecx, edx
mov dword [esp + 0x38], ecx
cmp ecx, 1
jne 0x46d168
add al, 0x23
mov byte [esi], al
inc esi
jmp 0x46d17a
add al, 0x25
mov byte [esi], al
mov eax, ecx
sar eax, 8
mov byte [esi + 1], al
mov byte [esi + 2], cl
add esi, 3
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x14]
mov cl, byte [esp + 0x18]
mov byte [eax], cl
inc eax
mov dword [esp + 0x14], eax
mov ebx, eax
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x10]
cmp dword [esp + 0x20], 0
je 0x46cf08
mov al, byte [ecx]
cmp al, 0x41
jne 0x46d1c6
mov al, byte [ecx + 3]
cmp al, 0x10
je 0x46d1bb
cmp al, 0xf
je 0x46d1bb
xor eax, eax
lea ecx, [ecx + eax + 4]
jmp 0x46d1da
mov eax, 2
lea ecx, [ecx + eax + 4]
jmp 0x46d1da
cmp al, 0x27
je 0x46d1ce
cmp al, 0x34
jne 0x46d1de
movzx edx, al
movzx eax, byte [edx + 0x4968b0]
add ecx, eax
mov dword [esp + 0x3c], ecx
mov eax, ebx
sub eax, ecx
mov dword [esp + 0x40], eax
test eax, eax
jle 0x46cf08
movzx eax, byte [ecx]
add eax, 0xffffffe1
cmp eax, 0x20
ja case.0x46d204.32
movzx edx, byte [eax + 0x46ed80]
jmp dword [edx*4 + 0x46ed4c]
mov byte [ecx], 0x28
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x29
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x2a
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x2b
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x42
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x43
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x44
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x45
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x35
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x36
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x37
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov byte [ecx], 0x38
mov edi, dword [esp + 0x10]
jmp 0x46cf08
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0xfc]
push eax
push ecx
mov byte [ebx], 0
mov edx, dword [esp + 0x44]
push 3
push edx
call fcn.0046b460
mov eax, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x50]
push eax
add eax, 3
push eax
call fcn.004777f0
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
add ecx, 3
mov byte [edx], 0x5d
mov byte [ebx + 3], 0x55
mov byte [ebx + 5], cl
mov eax, ecx
sar eax, 8
mov byte [ebx + 4], al
mov edx, dword [esp + 0x58]
mov byte [edx + 1], al
mov eax, dword [esp + 0x58]
add esp, 0x1c
add ebx, 6
mov byte [eax + 2], cl
mov edi, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
jmp 0x46cf08
mov eax, dword [esi + 0x24]
inc edi
mov dword [esp + 0x58], eax
mov dword [esp + 0x10], edi
mov al, byte [edi]
mov dword [esp + 0x60], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], 0x5f
mov dword [esp + 0x40], ecx
cmp al, 0x2a
jne 0x46d4d4
mov cl, byte [edi + 1]
mov ebp, dword [esi + 0xc]
lea edx, [edi + 1]
movzx esi, cl
test byte [esi + ebp], 2
mov dword [esp + 0xa8], edx
jne 0x46d354
cmp cl, 0x3a
jne 0x46d4d0
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], 0x496e10
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
lea ebx, [ebx]
inc edi
mov dword [esp + 0x10], edi
movzx ecx, byte [edi]
test byte [ecx + ebp], 2
jne 0x46d370
mov ecx, edi
sub ecx, edx
cmp byte [edi], 0x3a
mov dword [esp + 0x40], ecx
jne 0x46d3b0
inc edi
mov edx, edi
mov dword [esp + 0x20], edx
mov dword [esp + 0x10], edi
mov al, byte [edi]
movzx esi, al
test byte [esi + ebp], 6
jne 0x46d3a5
cmp al, 0x5f
jne 0x46d3a8
inc edi
jmp 0x46d392
mov eax, edi
sub eax, edx
mov dword [esp + 0x1c], eax
cmp byte [edi], 0x29
jne 0x46e935
xor edi, edi
mov esi, 0x496e40
cmp ecx, dword [esi]
jne 0x46d3e2
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xa8]
push edx
push eax
push ecx
call fcn.0047b9c1
add esp, 0xc
test eax, eax
je 0x46d406
mov edx, dword [esi]
mov eax, dword [esp + 0x34]
add esi, 0xc
lea ecx, [eax + edx + 1]
inc edi
mov dword [esp + 0x34], ecx
cmp esi, 0x496eac
jge 0x46d4a9
mov ecx, dword [esp + 0x40]
jmp 0x46d3c0
lea esi, [edi + edi*2]
add esi, esi
add esi, esi
cmp dword [esi + 0x496e44], 0x74
jne 0x46d448
mov eax, dword [esp + 0xfc]
mov dword [eax + 0x50], 1
mov eax, dword [eax + 0x20]
test eax, eax
je 0x46d448
jmp 0x46d430
mov byte [ebx], 0x75
mov dl, byte [eax + 5]
mov byte [ebx + 1], dl
mov cl, byte [eax + 4]
mov byte [ebx + 2], cl
mov eax, dword [eax]
add ebx, 3
test eax, eax
jne 0x46d430
cmp dword [esp + 0x1c], 0
jne 0x46d466
cmp dword [esi + 0x496e44], 0
jl 0x46e958
mov dl, byte [esi + 0x496e44]
mov byte [ebx], dl
jmp 0x46d49b
cmp dword [esi + 0x496e48], 0
jl 0x46e96a
mov al, byte [esi + 0x496e48]
mov ecx, dword [esp + 0x20]
mov byte [ebx], al
mov eax, dword [esp + 0x1c]
push eax
mov byte [ebx + 1], al
push ecx
add ebx, 2
push ebx
call fcn.0047b470
add esp, 0xc
add ebx, dword [esp + 0x1c]
mov byte [ebx], 0
inc ebx
mov dword [esp + 0x14], ebx
cmp edi, 9
jl 0x46c0d2
mov eax, dword [esp + 0xec]
mov dword [eax], 0x3c
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0xfc]
cmp al, 0x3f
jne 0x46dc95
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
movzx ecx, al
add ecx, 0xffffffdf
cmp ecx, 0x5b
ja case.0x46d500.34
movzx edx, byte [ecx + 0x46ede0]
jmp dword [edx*4 + 0x46eda4]
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
test al, al
je 0x46d521
cmp al, 0x29
je 0x46d544
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
test al, al
jne 0x46d512
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x12
xor eax, eax
pop ebx
add esp, 0xcc
ret
cmp byte [edi], 0
je 0x46d521
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
inc edi
xor edx, edx
jmp 0x46bd0a
mov dword [esp + 0x40], 1
jmp case.0x46d500.58
cmp byte [edi + 1], 0x3f
mov dword [esp + 0x18], 0x60
jne 0x46d596
mov al, byte [edi + 2]
cmp al, 0x3d
je 0x46e03b
cmp al, 0x21
je 0x46e03b
cmp al, 0x3c
je 0x46e03b
mov byte [ebx + 3], 0x64
mov edi, dword [esp + 0x10]
mov al, byte [edi + 1]
or ebp, 0xffffffff
mov dword [esp + 0x1c], 3
mov dword [esp + 0x34], ebp
cmp al, 0x52
jne 0x46d5cf
cmp byte [edi + 2], 0x26
lea ecx, [edi + 2]
jne 0x46d5cf
mov dword [esp + 0x10], ecx
mov byte [ebx + 3], 0x66
mov edi, dword [esp + 0x10]
mov dword [esp + 0x20], ebp
jmp 0x46d611
cmp al, 0x3c
jne 0x46d5e2
inc edi
mov dword [esp + 0x20], 0x3e
mov dword [esp + 0x10], edi
jmp 0x46d611
cmp al, 0x27
jne 0x46d5f5
inc edi
mov dword [esp + 0x20], 0x27
mov dword [esp + 0x10], edi
jmp 0x46d611
mov dword [esp + 0x20], 0
cmp al, 0x2d
je 0x46d605
cmp al, 0x2b
jne 0x46d611
inc edi
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
mov dword [esp + 0x34], eax
movzx ecx, byte [edi + 1]
mov edx, dword [esi + 0xc]
inc edi
test byte [ecx + edx], 0x10
je 0x46e97c
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
xor ecx, ecx
test byte [edx + eax], 0x10
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], edi
je 0x46d66a
lea ebx, [ebx]
test ecx, ecx
js 0x46d658
test byte [eax + 0x4979a8], 4
je 0x46d656
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2 - 0x30]
jmp 0x46d658
mov ecx, ebp
inc edi
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
test byte [edx + eax], 0x10
jne 0x46d640
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x20]
mov ebp, edi
sub ebp, dword [esp + 0x24]
test eax, eax
jle 0x46d688
movzx edx, byte [edi]
inc edi
mov dword [esp + 0x10], edi
cmp edx, eax
jne 0x46e99f
mov al, byte [edi]
inc edi
mov dword [esp + 0x10], edi
cmp al, 0x29
jne 0x46e99f
cmp dword [esp + 0x100], 0
jne 0x46e03b
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x46d6e8
test ecx, ecx
jle 0x46e9c3
cmp eax, 0x2d
jne 0x46d6c4
mov edx, dword [esi + 0x34]
sub edx, ecx
lea ecx, [edx + 1]
jmp 0x46d6c7
add ecx, dword [esi + 0x34]
test ecx, ecx
jle 0x46e2c0
cmp ecx, dword [esi + 0x38]
jg 0x46e2c0
mov eax, ecx
sar eax, 8
mov byte [ebx + 4], al
mov byte [ebx + 5], cl
jmp 0x46e03b
mov edi, dword [esp + 0xfc]
cmp dword [edi + 0x2c], 0
mov esi, dword [edi + 0x28]
mov dword [esp + 0x28], 0
jle 0x46d727
mov edx, dword [esp + 0x24]
push ebp
lea ecx, [esi + 2]
push ecx
push edx
call fcn.0047b9c1
add esp, 0xc
test eax, eax
je 0x46d727
mov eax, dword [esp + 0x28]
add esi, dword [edi + 0x30]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [edi + 0x2c]
jl 0x46d700
mov eax, dword [esp + 0x28]
cmp eax, dword [edi + 0x2c]
jge 0x46d751
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
shl ecx, 8
or eax, ecx
mov edx, eax
sar edx, 8
inc byte [ebx + 3]
mov byte [ebx + 4], dl
mov byte [ebx + 5], al
mov esi, edi
jmp 0x46e03b
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
shr eax, 3
and eax, 1
push eax
push ebp
push esi
push edi
call fcn.0046a430
add esp, 0x10
test eax, eax
jle 0x46d784
mov ecx, eax
sar ecx, 8
inc byte [ebx + 3]
mov byte [ebx + 4], cl
mov byte [ebx + 5], al
mov esi, edi
jmp 0x46e03b
cmp dword [esp + 0x20], 0
jne 0x46e9e6
cmp byte [esi], 0x52
jne 0x46d7dc
xor eax, eax
lea ecx, [eax + 1]
cmp ebp, ecx
jle 0x46d7c1
lea ecx, [ecx]
movzx edx, byte [ecx + esi]
test byte [edx + 0x4979a8], 4
je 0x46e9f8
inc ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*2 - 0x30]
cmp ecx, ebp
jl 0x46d7a0
test eax, eax
jne 0x46d7c6
mov eax, 0xffff
mov ecx, eax
sar ecx, 8
mov byte [ebx + 3], 0x66
mov byte [ebx + 4], cl
mov byte [ebx + 5], al
mov esi, edi
jmp 0x46e03b
cmp ebp, 6
jne 0x46d807
push ebp
push str.DEFINE
push esi
call fcn.0047b9c1
add esp, 0xc
test eax, eax
jne 0x46d807
mov byte [ebx + 3], 0x68
mov dword [esp + 0x1c], 1
mov esi, edi
jmp 0x46e03b
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x46ea0a
cmp eax, dword [edi + 0x38]
jg 0x46ea0a
mov edx, eax
sar edx, 8
mov byte [ebx + 4], dl
mov byte [ebx + 5], al
mov esi, edi
jmp 0x46e03b
mov dword [esp + 0x18], 0x58
jmp 0x46e036
inc edi
mov dword [esp + 0x10], edi
cmp byte [edi], 0x29
jne 0x46d855
mov byte [ebx], 0x73
mov dword [esp + 0x24], 0
jmp 0x46c0cd
mov dword [esp + 0x18], 0x59
jmp 0x46e03b
mov cl, byte [edi + 1]
cmp cl, 0x21
je 0x46d937
cmp cl, 0x3d
je 0x46d927
mov edx, dword [esi + 0xc]
movzx ecx, cl
test byte [ecx + edx], 0x10
je 0x46ea22
mov ebp, dword [esi + 0xc]
xor edx, edx
cmp al, 0x3c
setne dl
inc edi
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
mov ecx, edi
dec edx
and edx, 0x17
add edx, 0x27
test byte [eax + ebp], 0x10
mov dword [esp + 0x24], ecx
je 0x46d8be
mov eax, ebp
mov edi, edi
inc edi
mov dword [esp + 0x10], edi
movzx ebp, byte [edi]
test byte [eax + ebp], 0x10
jne 0x46d8b0
mov eax, edi
sub eax, ecx
cmp dword [esp + 0x100], 0
mov dword [esp + 0x34], eax
je 0x46da99
movzx ecx, byte [edi]
cmp ecx, edx
jne 0x46ea8c
cmp dword [esi + 0x2c], 0x2710
jge 0x46eaaf
lea ecx, [eax + 3]
cmp ecx, dword [esi + 0x30]
jle 0x46dc4d
mov dword [esi + 0x30], ecx
cmp eax, 0x20
jle 0x46dc4d
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x30
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov dword [esp + 0x18], 0x5a
add edi, 2
jmp 0x46e037
mov dword [esp + 0x18], 0x5b
add edi, 2
jmp 0x46e037
mov dword [esp + 0x18], 0x5d
jmp 0x46e036
mov byte [ebx], 0x53
mov edi, dword [esp + 0x10]
mov ebp, edi
inc edi
mov dword [esp + 0x10], edi
movzx ecx, byte [edi]
xor edx, edx
xor eax, eax
test byte [ecx + 0x4979a8], 4
mov dword [esp + 0x5c], ebx
mov dword [esp + 0xa4], 1
mov dword [esp + 0x34], edx
mov dword [esp + 0x6c], ebp
je 0x46d9ac
lea esp, [esp]
inc edi
lea edx, [edx + edx*4]
lea edx, [ecx + edx*2 - 0x30]
mov dword [esp + 0x10], edi
movzx ecx, byte [edi]
test byte [ecx + 0x4979a8], 4
jne 0x46d990
mov dword [esp + 0x34], edx
mov cl, byte [edi]
cmp cl, 0x29
je 0x46da04
test cl, cl
je 0x46ea46
cmp cl, 0x3a
je 0x46d9c6
mov dword [esp + 0x34], eax
mov edi, ebp
lea ecx, [edi + 1]
mov dword [esp + 0x6c], ecx
lea ecx, [ecx]
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
test al, al
je 0x46ea46
cmp al, 0x29
jne 0x46d9d0
test al, al
je 0x46ea46
sub edi, ecx
push edi
push ecx
call dword [0x4a2bb8]
mov edi, dword [esp + 0x18]
add esp, 8
test eax, eax
je 0x46ea46
mov ecx, dword [esp + 0x34]
cmp ecx, 0xff
jg 0x46ea69
mov byte [ebx + 1], cl
mov dword [ebx + 2], eax
mov eax, dword [esp + 0x10]
sub eax, dword [esi + 0x18]
mov dword [esp + 0x24], 0
inc eax
sar eax, 8
mov byte [ebx + 6], al
mov cl, byte [esp + 0x10]
sub cl, byte [esi + 0x18]
mov word [ebx + 8], 0
inc cl
mov byte [ebx + 7], cl
add ebx, 0xa
jmp 0x46c0ce
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
cmp al, 0x3d
je 0x46da84
cmp al, 0x3e
je 0x46da84
cmp al, 0x3c
je case.0x46d500.39
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x29
xor eax, eax
pop ebx
add esp, 0xcc
ret
xor edx, edx
cmp al, 0x3e
sete dl
mov esi, 0x29
mov dword [esp + 0x1c], edx
jmp 0x46e34c
mov eax, dword [esp + 0xfc]
mov ebp, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], eax
cmp eax, ecx
jle 0x46dbbb
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x24]
lea ecx, [ebp + 2]
cmp edx, 4
jb 0x46dae4
mov eax, dword [esi]
cmp eax, dword [ecx]
jne 0x46dae8
sub edx, 4
add ecx, 4
add esi, 4
cmp edx, 4
jae 0x46dad0
test edx, edx
je 0x46db33
movzx ebp, byte [ecx]
movzx eax, byte [esi]
sub eax, ebp
jne 0x46db23
cmp edx, 1
jbe 0x46db2f
movzx eax, byte [esi + 1]
movzx ebp, byte [ecx + 1]
sub eax, ebp
jne 0x46db23
cmp edx, 2
jbe 0x46db2f
movzx eax, byte [esi + 2]
movzx ebp, byte [ecx + 2]
sub eax, ebp
jne 0x46db23
cmp edx, 3
jbe 0x46db2f
movzx eax, byte [esi + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
mov ebp, dword [esp + 0x20]
sar eax, 0x1f
or eax, 1
jmp 0x46db35
mov ebp, dword [esp + 0x20]
xor eax, eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xfc]
test eax, eax
jne 0x46db7c
mov eax, dword [esp + 0x34]
cmp byte [eax + ebp + 2], 0
jne 0x46db99
movzx eax, byte [ebp]
movzx ecx, byte [ebp + 1]
shl eax, 8
or ecx, eax
mov eax, dword [edx + 0x34]
inc eax
cmp ecx, eax
je 0x46db72
test dword [esp + 0x2c], 0x80000
je 0x46ead2
mov dword [esp + 0x14], 1
jmp 0x46db7e
js 0x46db99
mov eax, dword [esp + 0x28]
add ebp, dword [edx + 0x30]
inc eax
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], eax
cmp eax, dword [edx + 0x2c]
jl 0x46dac0
jmp 0x46dbb4
mov edx, dword [edx + 0x30]
sub ecx, dword [esp + 0x28]
imul ecx, edx
push ecx
add edx, ebp
push ebp
push edx
call fcn.004777f0
mov edi, dword [esp + 0x1c]
add esp, 0xc
cmp dword [esp + 0x14], 0
jne 0x46dc0e
mov ecx, dword [esp + 0xfc]
mov eax, dword [ecx + 0x28]
xor edx, edx
mov dword [esp + 0x28], edx
cmp dword [ecx + 0x2c], edx
jle 0x46dc0e
cmp eax, ebp
je 0x46dbf9
movzx ecx, byte [eax]
movzx edx, byte [eax + 1]
shl ecx, 8
or edx, ecx
mov ecx, dword [esp + 0xfc]
mov esi, dword [ecx + 0x34]
inc esi
cmp edx, esi
je 0x46eaf5
mov edx, dword [esp + 0x28]
jmp 0x46dc01
mov ecx, dword [esp + 0xfc]
dec edx
add eax, dword [ecx + 0x30]
inc edx
mov dword [esp + 0x28], edx
cmp edx, dword [ecx + 0x2c]
jl 0x46dbd0
mov eax, dword [esp + 0xfc]
mov edx, dword [eax + 0x34]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
inc edx
sar edx, 8
mov byte [ebp], dl
mov al, byte [eax + 0x34]
push esi
push ecx
lea edx, [ebp + 2]
inc al
push edx
mov byte [ebp + 1], al
call fcn.0047b470
mov byte [esi + ebp + 2], 0
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x108]
add esp, 0xc
inc dword [esi + 0x2c]
inc edi
mov dword [esp + 0x10], edi
inc dword [esi + 0x34]
mov eax, dword [esi + 0x34]
sar eax, 8
mov byte [ebx + 3], al
mov cl, byte [esi + 0x34]
mov byte [ebx + 4], cl
mov dword [esp + 0x1c], 2
jmp 0x46e03b
mov esi, 0x29
mov dword [esp + 0x1c], 1
jmp 0x46e34c
inc edi
mov dword [esp + 0x10], edi
mov esi, 0x29
jmp 0x46de6d
test edx, 0x1000
je 0x46dc55
mov dword [esp + 0x18], 0x5e
jmp 0x46e03b
mov edx, dword [esp + 0x2c]
push 0
push edx
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0xf4]
lea eax, [esp + 0x18]
push edi
push eax
mov eax, dword [esi + 0x34]
call fcn.00469c20
add esp, 0x10
cmp dword [edi], 0
jne 0x46d4b6
xor ebp, ebp
cmp eax, ebp
jge 0x46be9c
mov ecx, eax
neg ecx
cmp ecx, 0x1a
jne 0x46dd32
mov edi, dword [esp + 0x10]
cmp byte [edi + 1], 0x5c
jne 0x46dd13
cmp byte [edi + 2], 0x45
jne 0x46dd13
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
add edi, 2
inc edi
xor edx, edx
jmp 0x46bd0a
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
inc edi
mov dword [esp + 0x50], 1
xor edx, edx
jmp 0x46bd0a
cmp ecx, 0x19
je 0x46c0d2
mov edx, dword [esp + 0x30]
cmp edx, 0xfffffffe
jne 0x46dd55
cmp ecx, 5
jle 0x46dd55
cmp ecx, 0x17
jge 0x46dd55
or edx, 0xffffffff
mov dword [esp + 0x30], edx
mov edi, dword [esp + 0x10]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x4c], edx
cmp ecx, 0x1b
jne 0x46e307
mov eax, dword [esp + 0xfc]
mov ecx, dword [eax + 0x24]
inc edi
xor edx, edx
mov dword [esp + 0x10], edi
cmp byte [edi], 0x3c
mov al, byte [edi + 1]
setne dl
mov dword [esp + 0x58], ecx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x40], ebp
lea esi, [edx - 1]
and esi, 0x17
add esi, 0x27
mov dword [esp + 0x20], esi
cmp al, 0x2b
je 0x46de1e
cmp al, 0x2d
je 0x46de1e
mov al, byte [edi + 1]
lea ecx, [edi + 1]
mov ebp, 1
test al, al
je 0x46dde2
movzx eax, al
cmp eax, esi
je 0x46dde2
mov esi, dword [esp + 0xfc]
mov esi, dword [esi + 0xc]
mov al, byte [eax + esi]
test al, 4
jne 0x46ddd2
xor ebp, ebp
mov esi, dword [esp + 0x20]
test al, 0x10
je 0x46dde2
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x46ddb8
movzx eax, byte [ecx]
cmp eax, esi
je 0x46de0d
mov ecx, dword [esp + 0xec]
mov esi, dword [esp + 0xb8]
mov ebp, dword [esp + 0x24]
mov dword [ecx], 0x39
mov ecx, dword [esp + 0x5c]
inc edi
xor edx, edx
jmp 0x46bd0a
test ebp, ebp
jne 0x46de68
mov dword [esp + 0x1c], 1
jmp 0x46e34c
movzx ebp, byte [edi + 2]
lea eax, [edi + 2]
mov cl, 4
test byte [ebp + 0x4979a8], cl
je 0x46de3d
nop
movzx ebp, byte [eax + 1]
inc eax
test byte [ebp + 0x4979a8], cl
jne 0x46de30
movzx eax, byte [eax]
cmp eax, esi
je 0x46de68
mov ecx, dword [esp + 0xec]
mov esi, dword [esp + 0xb8]
mov ebp, dword [esp + 0x24]
mov dword [ecx], 0x39
mov ecx, dword [esp + 0x5c]
inc edi
xor edx, edx
jmp 0x46bd0a
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
movzx edx, al
cmp edx, 0x2b
jne 0x46deaf
inc edi
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
test byte [eax + 0x4979a8], 4
jne 0x46e261
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x3f
xor eax, eax
pop ebx
add esp, 0xcc
ret
cmp edx, 0x2d
jne 0x46e261
movzx ecx, byte [edi + 1]
test byte [ecx + 0x4979a8], 4
jne 0x46e25c
mov esi, dword [esp + 0xfc]
xor ebp, ebp
xor edx, edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x34], edx
lea ecx, [esp + 0x34]
cmp al, 0x29
je 0x46df4b
lea edx, [ebp + 0x10]
cmp al, 0x3a
je 0x46df43
movzx eax, al
inc edi
sub eax, 0x2d
mov dword [esp + 0x10], edi
cmp eax, 0x4b
ja case.0x46df06.46
movzx eax, byte [eax + 0x46ee60]
jmp dword [eax*4 + 0x46ee3c]
lea ecx, [esp + 0x20]
jmp 0x46df3d
or dword [ecx], 0x80000
or dword [esi + 0x48], edx
jmp 0x46df3d
or dword [ecx], 1
jmp 0x46df3d
or dword [ecx], 2
jmp 0x46df3d
or dword [ecx], 4
jmp 0x46df3d
or dword [ecx], 8
jmp 0x46df3d
or dword [ecx], 0x200
jmp 0x46df3d
or dword [ecx], 0x40
mov al, byte [edi]
cmp al, 0x29
jne 0x46dee7
mov edx, dword [esp + 0x34]
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x2c]
or edx, esi
not ebp
and edx, ebp
cmp byte [edi], 0x29
mov eax, edx
mov dword [esp + 0x60], eax
jne 0x46e027
mov edx, dword [esp + 0xfc]
mov ecx, dword [edx + 0x14]
add ecx, 3
cmp ebx, ecx
jne 0x46dfb4
mov ecx, dword [esp + 0x100]
test ecx, ecx
je 0x46df85
cmp dword [ecx], 6
jne 0x46dfb4
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov dword [edx + 0x44], eax
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x24], 0
mov ebp, dword [esp + 0x24]
mov dword [edx], eax
inc edi
mov dword [esp + 0x2c], eax
xor edx, edx
jmp 0x46bd0a
mov edx, eax
xor edx, esi
test dl, 7
je 0x46dfd3
mov cl, al
mov byte [ebx], 0x19
and cl, 7
mov byte [ebx + 1], cl
mov edi, dword [esp + 0x10]
add ebx, 2
mov dword [esp + 0x14], ebx
mov edx, dword [esp + 0xe0]
mov esi, dword [esp + 0xb8]
mov ecx, eax
shr ecx, 9
and ecx, 1
mov dword [esp + 0xac], ecx
xor ecx, 1
mov dword [esp + 0xb4], ecx
mov ecx, eax
and ecx, 1
shl ecx, 8
mov dword [esp + 0x24], 0
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x5c]
mov dword [edx], eax
inc edi
mov dword [esp + 0x2c], eax
xor edx, edx
jmp 0x46bd0a
mov esi, dword [esp + 0xfc]
mov dword [esp + 0x18], 0x5e
inc edi
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x18]
xor ecx, ecx
cmp eax, 0x5d
setl cl
mov byte [ebx], al
mov ebp, dword [esi + 0x4c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x64], 0
dec ecx
and ecx, ebx
mov dword [esp + 0x24], ecx
cmp eax, 0x5a
je 0x46e06d
cmp eax, 0x5b
je 0x46e06d
xor eax, eax
jmp 0x46e072
mov eax, 1
mov edi, dword [esp + 0x100]
mov edx, edi
neg edx
sbb edx, edx
lea ecx, [esp + 0x64]
and edx, ecx
push edx
mov edx, dword [esp + 0xfc]
push esi
push edx
lea ecx, [esp + 0xa0]
push ecx
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0xac]
push edx
mov edx, dword [esp + 0x54]
push ecx
push edx
push eax
mov eax, dword [esp + 0x10c]
push eax
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x88]
lea edx, [esp + 0x64]
push edx
and eax, 7
push eax
push ecx
call fcn.0046eeb0
add esp, 0x34
test eax, eax
je 0x46d4b6
mov edx, dword [esp + 0x18]
cmp edx, 0x60
jne 0x46e119
test edi, edi
jne 0x46e119
mov eax, ebx
xor ecx, ecx
lea ecx, [ecx]
movzx esi, byte [eax + 1]
movzx edi, byte [eax + 2]
shl esi, 8
or esi, edi
add eax, esi
inc ecx
cmp byte [eax], 0x55
jne 0x46e0f0
cmp byte [ebx + 3], 0x68
jne 0x46e176
cmp ecx, 1
jg 0x46eb3c
mov edx, 0x68
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x94]
mov edi, dword [esp + 0x10]
cmp byte [edi], 0x29
jne 0x46eb60
mov esi, dword [esp + 0x100]
test esi, esi
je 0x46e199
mov eax, dword [esi]
mov ecx, dword [esp + 0x64]
mov edx, 0x7fffffeb
sub edx, eax
lea ebp, [ecx - 6]
cmp edx, ebp
jl 0x46e912
lea eax, [eax + ecx - 6]
mov dword [esi], eax
mov word [ebx], 0x5e
mov word [ebx + 2], 0x5503
mov word [ebx + 4], 0x300
add ebx, 6
jmp 0x46c0ce
cmp ecx, 2
jg 0x46eb4e
cmp ecx, 1
jne 0x46e119
or ecx, 0xffffffff
or eax, ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x9c], eax
jmp 0x46e127
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x14], esi
cmp edx, 0x68
je 0x46e241
mov esi, dword [esp + 0x48]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x54], esi
mov dword [esp + 0xa0], 0
cmp edx, 0x5d
jl 0x46e234
cmp esi, 0xfffffffe
jne 0x46e1fe
test eax, eax
js 0x46e1ec
mov dword [esp + 0x30], eax
mov dword [esp + 0xa0], 1
mov dword [esp + 0x54], 0xffffffff
jmp 0x46e211
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x54], 0xffffffff
jmp 0x46e211
test eax, eax
js 0x46e211
test ecx, ecx
jns 0x46e215
or eax, ebp
mov ecx, eax
mov dword [esp + 0x94], ecx
test ecx, ecx
js 0x46e241
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0xb8]
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x5c]
inc edi
xor edx, edx
jmp 0x46bd0a
cmp edx, 0x58
jne 0x46e241
test ecx, ecx
js 0x46e241
mov dword [esp + 0x48], ecx
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
inc edi
xor edx, edx
jmp 0x46bd0a
inc edi
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
xor ecx, ecx
test byte [eax + 0x4979a8], 4
mov dword [esp + 0x14], ecx
je 0x46e28f
inc edi
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2 - 0x30]
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
test byte [eax + 0x4979a8], 4
jne 0x46e273
mov dword [esp + 0x14], ecx
movzx eax, byte [edi]
cmp eax, esi
jne 0x46eb83
cmp edx, 0x2d
jne 0x46e2e3
test ecx, ecx
je 0x46e9c3
mov edx, dword [esp + 0xfc]
mov eax, dword [edx + 0x34]
sub eax, ecx
inc eax
mov dword [esp + 0x14], eax
test eax, eax
jg 0x46e443
mov edx, dword [esp + 0xec]
mov dword [edx], 0xf
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
cmp edx, 0x2b
jne 0x46e443
test ecx, ecx
je 0x46eba6
mov eax, dword [esp + 0xfc]
add ecx, dword [eax + 0x34]
mov dword [esp + 0x14], ecx
jmp 0x46e443
cmp ecx, 0x1c
jne 0x46e5ba
mov dl, byte [edi + 1]
cmp dl, 0x3c
je 0x46e326
cmp dl, 0x27
je 0x46e326
cmp dl, 0x7b
jne 0x46e5ba
inc edi
mov dword [esp + 0x10], edi
mov al, byte [edi]
mov dword [esp + 0x1c], ebp
cmp al, 0x3c
jne 0x46e33c
mov esi, 0x3e
jmp 0x46e34c
xor ecx, ecx
cmp al, 0x27
setne cl
lea esi, [ecx - 1]
and esi, 0xffffffaa
add esi, 0x7d
mov eax, dword [esp + 0xfc]
mov ecx, dword [eax + 0xc]
inc edi
mov dword [esp + 0x10], edi
movzx edx, byte [edi]
test byte [edx + ecx], 0x10
mov dword [esp + 0x24], edi
je 0x46e37e
mov eax, ecx
lea ebx, [ebx]
inc edi
mov dword [esp + 0x10], edi
movzx edx, byte [edi]
test byte [edx + eax], 0x10
jne 0x46e370
mov ebp, edi
sub ebp, dword [esp + 0x24]
cmp dword [esp + 0x100], 0
je 0x46e3b7
test ebp, ebp
je 0x46ebc9
movzx eax, byte [edi]
cmp eax, esi
jne 0x46ebec
cmp ebp, 0x20
jg 0x46d904
mov dword [esp + 0x14], 0
jmp 0x46e438
mov eax, dword [esp + 0xfc]
mov esi, dword [eax + 0x28]
xor edi, edi
cmp dword [eax + 0x2c], edi
jle 0x46e3f4
mov edx, dword [esp + 0x24]
push ebp
lea ecx, [esi + 2]
push ecx
push edx
call fcn.0047b9c1
add esp, 0xc
test eax, eax
jne 0x46e3e4
cmp byte [esi + ebp + 2], al
je 0x46e3f4
mov eax, dword [esp + 0xfc]
add esi, dword [eax + 0x30]
inc edi
cmp edi, dword [eax + 0x2c]
jl 0x46e3c8
mov eax, dword [esp + 0xfc]
cmp edi, dword [eax + 0x2c]
jge 0x46e412
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
shl ecx, 8
or eax, ecx
mov dword [esp + 0x14], eax
jmp 0x46e438
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
shr edx, 3
and edx, 1
push edx
push ebp
push ecx
push eax
call fcn.0046a430
add esp, 0x10
mov dword [esp + 0x14], eax
test eax, eax
jle 0x46e9f8
cmp dword [esp + 0x1c], 0
je 0x46e5ce
cmp dword [esp + 0x100], 0
mov edi, dword [esp + 0xfc]
mov eax, dword [edi + 0x14]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], eax
jne 0x46e55b
cmp dword [esp + 0x14], 0
mov byte [ebx], 0
je 0x46e47d
mov esi, dword [esp + 0x14]
mov eax, dword [edi + 0x14]
call fcn.0046aa60
mov dword [esp + 0x20], eax
test eax, eax
jne 0x46e529
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x18]
mov dword [esp + 0xb0], eax
lea eax, [esp + 0xb0]
push eax
shr esi, 3
and esi, 1
push esi
push ecx
push 0
mov dword [esp + 0x2c], edx
lea edx, [esp + 0x2c]
push edi
push edx
call fcn.0046a0b0
add esp, 0x18
test eax, eax
jg 0x46e4f4
sar byte [edi + 0x35], 0x90
nop
mov ebp, dword [esp + 0x1c]
mov cl, byte [ebp]
inc ebp
mov dword [esp + 0x1c], ebp
test cl, cl
je 0x46e4f2
mov eax, dword [esp + 0x14]
lea edx, [esp + 0xb0]
push edx
push esi
push eax
push 0
lea ecx, [esp + 0x2c]
push edi
push ecx
call fcn.0046a0b0
add esp, 0x18
test eax, eax
jle 0x46e4c0
test eax, eax
js 0x46ec0f
mov eax, dword [edi + 0x14]
mov edx, dword [esp + 0x14]
add edx, eax
mov ecx, ebx
sub ecx, eax
add ecx, 4
sar ecx, 8
mov dword [esp + 0x20], edx
mov edx, dword [edi + 0x24]
mov byte [edx], cl
mov ecx, dword [edi + 0x24]
mov al, bl
sub al, byte [edi + 0x14]
add al, 4
mov byte [ecx + 1], al
add dword [edi + 0x24], 2
jmp 0x46e557
movzx edx, byte [eax + 1]
movzx ecx, byte [eax + 2]
shl edx, 8
or edx, ecx
jne 0x46e55b
mov edx, dword [esp + 0xf8]
mov eax, dword [esp + 0x20]
push edi
push edx
push ebx
push eax
call fcn.0046af70
add esp, 0x10
test eax, eax
jne 0x46ec21
mov eax, dword [esp + 0x20]
mov dword [ebx], 0x5206005d
mov edx, eax
sub edx, dword [edi + 0x14]
mov cl, 6
sar edx, 8
mov byte [ebx + 4], dl
sub al, byte [edi + 0x14]
add ebx, 9
cmp dword [esp + 0x30], 0xfffffffe
mov byte [ebx - 4], al
mov word [ebx - 3], 0x55
mov byte [ebx - 1], cl
mov edi, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x64], 9
jne 0x46c0d6
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
inc edi
mov dword [esp + 0x30], 0xffffffff
xor edx, edx
jmp 0x46bd0a
cmp ecx, 0x23
jl 0x46e670
mov ecx, 0xffffffdd
sub ecx, eax
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x30], 0xfffffffe
jne 0x46e5dd
mov dword [esp + 0x30], 0xffffffff
mov ecx, dword [esp + 0x14]
mov eax, ecx
sar eax, 8
mov byte [ebx], 0x51
mov byte [ebx + 1], al
mov dword [esp + 0x24], ebx
mov byte [ebx + 2], cl
add ebx, 3
mov dword [esp + 0x14], ebx
mov eax, 1
cmp ecx, 0x20
jge 0x46e606
shl eax, cl
mov edx, dword [esp + 0xfc]
or dword [edx + 0x40], eax
cmp ecx, dword [edx + 0x3c]
jle 0x46e618
mov dword [edx + 0x3c], ecx
mov eax, dword [edx + 0x20]
test eax, eax
je 0x46c0d2
movzx edx, word [eax + 4]
cmp edx, ecx
je 0x46e64c
mov eax, dword [eax]
test eax, eax
jne 0x46e623
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
inc edi
xor edx, edx
jmp 0x46bd0a
mov esi, dword [esp + 0xb8]
mov ebp, dword [esp + 0x24]
mov ecx, 1
mov word [eax + 6], cx
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x5c]
inc edi
xor edx, edx
jmp 0x46bd0a
cmp ecx, 0x16
je 0x46ec33
cmp ecx, 0xf
je 0x46ec33
cmp ecx, 0x10
je 0x46ec33
cmp ecx, 5
jle 0x46e699
mov dword [esp + 0x24], ebx
cmp ecx, 0x17
jl 0x46e69d
mov dword [esp + 0x24], ebp
neg al
mov byte [ebx], al
jmp 0x46c0cd
mov edx, dword [esp + 0xfc]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x10]
cmp ecx, 0xfffffffe
jne 0x46e6ef
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0xb8]
mov ebp, dword [esp + 0x24]
movzx eax, al
or eax, dword [esp + 0x98]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x5c]
inc edi
mov dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x30], eax
xor edx, edx
jmp 0x46bd0a
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0xb8]
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x54], ecx
movzx ecx, byte [ebx - 1]
or ecx, dword [edx + 0x4c]
inc edi
or ecx, dword [esp + 0x98]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x5c]
xor edx, edx
jmp 0x46bd0a
mov edx, dword [esp + 0xec]
mov dword [edx], 0x34
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x14
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x34
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xf0]
mov eax, dword [esp + 0x30]
mov dword [edx], eax
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0x48]
mov dword [edx], eax
mov edx, dword [esp + 0xe4]
mov eax, dword [esp + 0xe8]
mov dword [edx], ebx
mov edx, dword [esp + 0x100]
mov dword [eax], edi
cmp edx, ecx
je 0x46e805
mov eax, dword [edx]
mov ecx, dword [esp + 0x90]
mov esi, ebx
mov ebp, 0x7fffffeb
sub esi, ecx
sub ebp, eax
cmp ebp, esi
jge 0x46e7ff
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x14
xor eax, eax
pop ebx
add esp, 0xcc
ret
sub eax, ecx
add eax, ebx
mov dword [edx], eax
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
xor eax, eax
cmp byte [edi + 1], 0x3a
mov dword [edx], edi
setne al
pop edi
pop esi
pop ebp
pop ebx
dec eax
and eax, 0xffffffee
add eax, 0x1f
mov dword [ecx], eax
xor eax, eax
add esp, 0xcc
ret
mov edx, dword [esp + 0xec]
mov dword [edx], 0x1f
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0x1e
jmp 0x46d4b6
mov ecx, edi
mov dword [ecx], 7
jmp 0x46d4b6
mov edx, dword [esp + 0xec]
mov dword [edx], 8
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 6
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 9
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x37
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xec]
mov dword [edx], 0x14
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x3c
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov ecx, dword [esp + 0xec]
mov dword [ecx], 0x42
jmp 0x46d4b6
mov edx, dword [esp + 0xec]
mov dword [edx], 0x3b
jmp 0x46d4b6
mov edx, dword [esp + 0xec]
mov dword [edx], 0x1c
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
dec edi
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x1a
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x3a
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0xf
jmp 0x46d4b6
mov ecx, dword [esp + 0xec]
mov dword [ecx], 0xf
jmp 0x46d4b6
mov edx, dword [esp + 0xec]
neg eax
sbb eax, eax
and eax, 0xffffffec
add eax, 0x23
mov dword [edx], eax
jmp 0x46d4b6
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
inc edi
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x18
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x27
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xec]
mov dword [edx], 0x26
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x2a
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xec]
mov dword [edx], 0x31
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x2b
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xec]
mov dword [edx], 0x41
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
dec edi
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0xc
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xec]
mov dword [edx], 0x36
jmp 0x46d4b6
mov eax, dword [esp + 0xec]
mov dword [eax], 0x1b
jmp 0x46d4b6
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0xe
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x1d
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x3a
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x3e
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xec]
mov dword [edx], 0x2a
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xec]
mov dword [edx], 0xf
jmp 0x46d4b6
mov eax, dword [esp + 0xec]
mov dword [eax], 0x28
jmp 0x46d4b6
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x2d
xor eax, eax
pop ebx
add esp, 0xcc
ret