Function at 0x1055663
Capabilities:
Get system information on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x518
push ebx
push esi
mov dword [ebp - 0x10], ecx
push edi
lea ecx, [ebp - 0x1d4]
call fcn.01027bd0
lea ecx, [ebp - 0x22c]
call fcn.01021b06
lea ecx, [ebp - 0xc4]
call fcn.01021b06
lea ecx, [ebp - 0x284]
call fcn.01021b06
lea ecx, [ebp - 0x3b8]
call fcn.0102422f
lea ecx, [ebp - 0x318]
call fcn.010250bc
xor ebx, ebx
lea ecx, [ebp - 0x348]
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x40], ebx
call fcn.0100dbb5
lea ecx, [ebp - 0x518]
call fcn.01031e4e
or dword [ebp - 0x68], 0xffffffff
cmp byte [ebp + 0x24], bl
mov esi, dword [ebp + 8]
jne 0x1055c90
cmp word [ebp + 0x20], bx
je 0x1055c96
push ebx
push 0x2c
lea eax, [ebp - 0x2b0]
push eax
push ebx
call dword [sym.imp.ntdll.dll_NtQuerySystemInformation]
cmp eax, ebx
jl 0x10587d5
mov eax, dword [ebp - 0x290]
sub eax, dword [ebp - 0x294]
xor edx, edx
div dword [ebp - 0x2a8]
mov edx, dword [ebp - 0x2a4]
xor ecx, ecx
cmp ebx, ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x38], eax
ja 0x1055749
jb 0x105573f
cmp edx, eax
jae 0x1055749
mov eax, edx
mov ecx, ebx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], ecx
cmp ebx, ecx
mov edx, dword [esi + 0x640]
ja 0x105575f
jb 0x1055759
cmp edx, eax
jae 0x105575f
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], ebx
cmp word [ebp + 0x20], 0xffff
je 0x1055798
movzx eax, word [ebp + 0x20]
cmp eax, dword [esi + 0x30]
jbe 0x1055798
push eax
push 0x1001200
push 0x6659
push dword [ebp + 0x30]
call fcn.0100cfa9
mov ax, word [esi + 0x30]
xor ecx, ecx
inc ecx
add esp, 0x10
cmp ax, cx
mov dword [ebp + 0x20], ecx
jb 0x1055798
mov dword [ebp + 0x20], eax
push ecx
push ecx
mov ecx, dword [ebp - 0x2a8]
mov eax, esp
push ebx
mov dword [eax], ecx
mov dword [eax + 4], ebx
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x38]
mov edi, dword [ebp - 0x2a8]
push 8
push ecx
push eax
dec edi
mov dword [ebp - 0x4c], ebx
call sub.ntdll.dll__allmul
mov ecx, dword [esi + 0x30]
mov dword [ebp - 0x60], eax
mov eax, edx
shl ecx, 4
xor edx, edx
add ecx, dword [ebp - 0x60]
adc edx, eax
add edi, ecx
mov eax, ebx
adc eax, edx
push eax
push edi
lea eax, [ebp - 0x58]
push eax
call fcn.0100bd16
cmp byte [ebp + 0x28], bl
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x50], ecx
mov ecx, dword [esi + 0x2c]
mov dword [ebp - 0x4c], eax
mov dword [ebp + 8], 0x164
je 0x1055805
mov dword [ebp + 8], 0x44
mov edx, dword [ebp - 0x2a8]
push ecx
push ecx
mov eax, esp
shl edx, 3
mov dword [eax], edx
mov dword [eax + 4], ebx
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x20], bl
mov edi, dword [ebp - 0x2a8]
lea edi, [edi*8 - 1]
mov dword [ebp - 0x5c], ebx
je 0x1055834
mov eax, dword [eax + 0x10]
jmp 0x1055836
xor eax, eax
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push dword [ebp + 8]
mov dword [ebp - 0x54], eax
xor eax, eax
push eax
push ecx
lea eax, [ebp - 0xc]
push eax
mov dword [ebp - 0x58], edx
call fcn.0100bced
mov ecx, dword [eax]
add ecx, dword [ebp - 0x58]
mov eax, dword [eax + 4]
adc eax, dword [ebp - 0x54]
add edi, ecx
mov ecx, dword [ebp - 0x5c]
adc ecx, eax
push ecx
push edi
lea eax, [ebp - 0x234]
push eax
call fcn.0100bd16
mov edi, dword [eax]
mov eax, dword [eax + 4]
push ecx
mov dword [ebp - 0x1c], edi
add edi, dword [ebp - 0x50]
mov dword [ebp - 0x18], eax
adc eax, dword [ebp - 0x4c]
push ecx
mov dword [ebp - 0x54], eax
mov eax, esp
push ebx
push 9
push dword [ebp - 0x28]
mov dword [eax], 0xa
push dword [ebp - 0x2c]
mov dword [eax + 4], ebx
call sub.ntdll.dll__allmul
push edx
push eax
lea eax, [ebp - 0x234]
push eax
call fcn.0100bd16
cmp word [ebp + 0x20], 0xffff
mov ecx, dword [eax]
mov dword [ebp + 8], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], eax
jne 0x10559f5
mov eax, dword [ebp + 8]
push dword [eax + 4]
push dword [eax]
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
call fcn.0100dd97
test al, al
je 0x1055a98
push ecx
push ecx
mov ecx, dword [ebp - 0x38]
mov eax, esp
push dword [ebp - 0x54]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x34]
push edi
mov dword [ebp + 0x20], ebx
mov dword [eax + 4], ecx
call fcn.0100dd97
cmp al, bl
je 0x1055915
push 0x665a
mov ecx, dword [ebp + 0x30]
call fcn.0100effb
jmp 0x1055ca3
sub edi, dword [ebp - 0x2c]
push ecx
push ecx
mov eax, esp
mov ecx, 0x400
push ecx
mov dword [eax], ecx
mov dword [eax + 4], ebx
push ecx
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], ebx
push dword [ebp - 0x2a8]
mov eax, dword [ebp - 0x54]
sbb eax, dword [ebp - 0x28]
push eax
mov dword [ebp - 0x34], eax
push edi
lea eax, [ebp - 0x234]
push eax
call fcn.0100bced
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x60]
push eax
call fcn.0100bd16
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x50]
push eax
call fcn.0100bd16
push dword [eax + 4]
push dword [eax]
push ecx
push ecx
mov eax, esp
mov dword [eax], 1
mov dword [eax + 4], ebx
call fcn.0100dd97
cmp al, bl
je 0x105598a
xor ecx, ecx
inc ecx
xor eax, eax
jmp 0x10559d9
push ecx
push ecx
mov eax, esp
mov ecx, 0x400
push ecx
mov dword [eax], ecx
mov dword [eax + 4], ebx
push ecx
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], ebx
push dword [ebp - 0x2a8]
mov eax, dword [ebp - 0x34]
push eax
push edi
lea eax, [ebp - 0x1c]
push eax
call fcn.0100bced
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0xc]
push eax
call fcn.0100bd16
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x1dc]
push eax
call fcn.0100bd16
mov ecx, dword [eax]
mov eax, dword [eax + 4]
push eax
push ecx
push 0x1001200
push 0x6656
push dword [ebp + 0x30]
call fcn.0100cfa9
add esp, 0x14
jmp 0x1055ca3
cmp word [ebp + 0x20], 1
je 0x1055c7f
or dword [ebp - 0x2c], 0xffffffff
or dword [ebp - 0x28], 0xffffffff
cmp word [ebp + 0x20], bx
je 0x1055ca3
movzx eax, word [ebp + 0x20]
push ecx
push ecx
mov ecx, esp
mov dword [ebp + 8], eax
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
push dword [ebp - 0x2a8]
mov edi, eax
push dword [ebp - 0x4c]
lea eax, [ebp - 0x70]
push dword [ebp - 0x50]
mov dword [ebp - 0x5c], edx
push eax
call fcn.0100bced
mov ecx, dword [eax]
mov eax, dword [eax + 4]
add edi, ecx
mov ecx, dword [ebp - 0x5c]
adc ecx, eax
push ecx
push edi
lea eax, [ebp - 0x48]
push eax
call fcn.0100bd16
mov edi, dword [eax]
mov eax, dword [eax + 4]
push ecx
push ecx
mov dword [ebp - 0x5c], eax
mov eax, esp
push dword [ebp - 0x28]
or dword [eax], 0xffffffff
push dword [ebp - 0x2c]
or dword [eax + 4], 0xffffffff
call fcn.0100dde3
push dword [ebp + 8]
mov eax, dword [ebp - 0x5c]
push 0x1001200
push 0x6657
push dword [ebp + 0x30]
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], eax
call fcn.0100cfa9
add esp, 0x10
jmp 0x1055ca3
mov eax, dword [ebp + 8]
push dword [eax + 4]
push dword [eax]
push dword [ebp - 0x54]
push edi
call fcn.0100fb70
test al, al
jne 0x1055c7f
push ecx
push ecx
mov ecx, dword [ebp - 0x38]
mov eax, esp
push dword [ebp - 0x54]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x34]
push edi
mov dword [eax + 4], ecx
call fcn.0100dd97
cmp al, bl
je 0x1055adf
mov ecx, dword [ebp + 0x30]
push 0x665a
call fcn.0100effb
jmp 0x1055bba
sub edi, dword [ebp - 0x2c]
push ecx
push ecx
mov eax, esp
mov ecx, 0x400
push ecx
mov dword [eax], ecx
mov dword [eax + 4], ebx
push ecx
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], ebx
push dword [ebp - 0x2a8]
mov eax, dword [ebp - 0x54]
sbb eax, dword [ebp - 0x28]
push eax
mov dword [ebp - 0x34], eax
push edi
lea eax, [ebp - 0x1dc]
push eax
call fcn.0100bced
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x234]
push eax
call fcn.0100bd16
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x60]
push eax
call fcn.0100bd16
push dword [eax + 4]
push dword [eax]
push ecx
push ecx
mov eax, esp
mov dword [eax], 1
mov dword [eax + 4], ebx
call fcn.0100dd97
cmp al, bl
je 0x1055b57
xor ecx, ecx
inc ecx
xor eax, eax
jmp 0x1055ba3
push ecx
push ecx
mov eax, esp
mov ecx, 0x400
push ecx
mov dword [eax], ecx
mov dword [eax + 4], ebx
push ecx
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], ebx
push dword [ebp - 0x2a8]
mov eax, dword [ebp - 0x34]
push eax
push edi
lea eax, [ebp - 0xc]
push eax
call fcn.0100bced
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x48]
push eax
call fcn.0100bd16
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x70]
push eax
call fcn.0100bd16
mov ecx, dword [eax]
mov eax, dword [eax + 4]
push eax
push ecx
push 0x1001200
push 0x6656
push dword [ebp + 0x30]
call fcn.0100cfa9
add esp, 0x14
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x1c]
push dword [ebp - 0x2a8]
mov ecx, dword [ebp - 0x28]
sbb ecx, dword [ebp - 0x18]
mov dword [ebp - 0x38], ebx
push ecx
push eax
lea eax, [ebp - 0x70]
push eax
mov dword [ebp - 0x34], ebx
call fcn.0100bced
cmp dword [esi + 0x2c], ebx
mov edi, eax
mov eax, dword [edi]
mov dword [ebp - 0x2c], eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x28], eax
mov dword [ebp + 0x20], 1
mov dword [ebp - 8], ebx
jbe 0x1055a12
mov eax, dword [esi + 0x40]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
mov ax, word [eax]
cmp ax, bx
je 0x1055c4c
push dword [edi + 4]
movzx eax, ax
push dword [edi]
lea eax, [eax*8 + 0x10]
xor ecx, ecx
add dword [ebp - 0x38], eax
mov dword [ebp - 0x54], eax
adc dword [ebp - 0x34], ecx
push dword [ebp - 0x34]
push dword [ebp - 0x38]
call fcn.0100dd97
test al, al
je 0x1055c4c
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x38], eax
xor eax, eax
inc dword [ebp + 0x20]
cmp word [ebp + 0x20], 0xa
mov dword [ebp - 0x34], eax
ja 0x1055c60
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
add dword [ebp + 8], 2
cmp eax, dword [esi + 0x2c]
jb 0x1055c03
jmp 0x1055a08
push 0xa
push 0x1001200
push 0x665b
push dword [ebp + 0x30]
mov dword [ebp + 0x20], ebx
call fcn.0100cfa9
add esp, 0x10
jmp 0x1055a08
or dword [ebp - 0x2c], 0xffffffff
or dword [ebp - 0x28], 0xffffffff
mov dword [ebp + 0x20], 1
jmp 0x1055ca3
cmp word [ebp + 0x20], bx
jne 0x1055ca0
push 0x6658
jmp 0x1055908
mov dword [ebp + 0x20], ebx
push dword [esi + 0x2c]
mov ecx, dword [ebp + 0xc]
call fcn.01038bca
test al, al
jne 0x1055cc4
mov ecx, dword [ebp + 0x30]
push 0x426
call fcn.0100effb
jmp 0x10587d5
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0x88]
push eax
push 2
push 0x1001804
push 3
push 2
push 0x65dc
push dword [ebp + 0x30]
call fcn.0100d00a
push ebx
push 0x1001200
push 0x7d0
push dword [ebp + 0x30]
call fcn.0100cfa9
add esp, 0x2c
test al, al
je 0x10587d5
cmp word [ebp + 0x20], bx
jne 0x1056d3f
cmp byte [ebp + 0x24], bl
je 0x1055d3d
mov ecx, dword [esi + 0x2c]
push ebx
push ebx
push 1
push ecx
push ecx
mov eax, esp
mov dword [eax], ecx
lea ecx, [esi + 0xa8]
mov dword [eax + 4], ebx
call fcn.01023a43
cmp al, bl
je 0x1055cb2
mov byte [esi + 0x100], bl
mov eax, dword [esi + 0x2c]
shr eax, 4
inc eax
add dword [esi + 0x38], eax
mov dword [ebp - 8], ebx
adc dword [esi + 0x3c], ebx
cmp dword [esi + 0x2c], ebx
jbe 0x1056c4d
test byte [ebp - 8], 0xf
jne 0x1055d63
add dword [ebp - 0x24], 1
adc dword [ebp - 0x20], ebx
push ecx
push ecx
mov eax, esp
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov dword [eax], 1
mov dword [eax + 4], ebx
mov eax, esp
mov dword [eax], ecx
xor edi, edi
lea ecx, [esi + 0x48]
mov dword [eax + 4], edi
call fcn.01023b63
cmp al, bl
je 0x1055dd2
push ebx
push 0x5a
push dword [ebp - 0x20]
push dword [ebp - 0x24]
call sub.ntdll.dll__allmul
push dword [esi + 0x3c]
push dword [esi + 0x38]
push edx
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.0100bd16
mov eax, dword [eax]
cmp eax, dword [ebp - 0x3c]
je 0x1056c3e
push eax
push 0x1001200
push 0x7d0
push dword [ebp + 0x30]
mov dword [ebp - 0x3c], eax
call fcn.0100cfa9
add esp, 0x10
jmp 0x1056c36
push dword [ebp + 0x10]
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x1d4]
mov dword [eax + 4], edi
call fcn.01027c42
cmp al, bl
je 0x1055cb2
lea ecx, [ebp - 0x1d4]
call fcn.0102d8c9
test al, al
jne 0x1055e4c
push ecx
push ecx
mov eax, esp
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov dword [eax], 1
mov dword [eax + 4], ebx
mov eax, esp
mov dword [eax], ecx
lea ecx, [esi + 0x278]
mov dword [eax + 4], edi
call fcn.0101d39b
cmp al, bl
jne 0x1056c3e
push dword [ebp - 8]
push 0x1001200
push 0x659e
push dword [ebp + 0x30]
call fcn.0100cfa9
add esp, 0x10
jmp 0x1056c3e
push ebx
push 0xa0
lea eax, [ebp - 1]
push eax
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x1d4]
mov byte [ebp + 0xb], bl
mov dword [ebp - 0x18], ebx
call fcn.010292b8
test al, al
je 0x1056007
xor edi, edi
inc edi
push ebx
lea eax, [ebp - 0x270]
push eax
push 0x90
lea ecx, [ebp - 0x1d4]
call fcn.0102822e
test al, al
jne 0x1055fde
push ecx
push ecx
mov eax, esp
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov dword [eax], edi
mov dword [eax + 4], ebx
mov eax, esp
mov dword [eax], ecx
xor ecx, ecx
mov dword [eax + 4], ecx
lea ecx, [esi + 0x48]
mov dword [ebp - 0x40], edi
call fcn.0100f6be
lea eax, [ebp - 0x270]
push eax
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
push 0x100b9cc
push 0x69b2
push dword [ebp + 0x30]
call fcn.0100d2ff
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0x270]
push ecx
push eax
push 0x100b984
push 0x65b8
push dword [ebp + 0x30]
call fcn.0100cfa9
mov eax, dword [ebp + 0x10]
add esp, 0x2c
cmp byte [eax + 0x20], bl
mov byte [ebp + 0xb], 1
je 0x1055f1d
mov eax, dword [eax + 0x10]
jmp 0x1055f1f
xor eax, eax
push eax
push ecx
push ecx
mov eax, esp
lea ecx, [ebp - 0x284]
mov dword [eax], ebx
mov dword [eax + 4], ebx
call fcn.0102020b
cmp al, bl
je 0x1055cb2
push ebx
lea eax, [ebp - 0x270]
push eax
push dword [ebp - 0x274]
lea ecx, [ebp - 0x1d4]
call fcn.010295b8
test al, al
je 0x1055cb2
dec dword [ebp - 0x18]
lea eax, [ebp - 0x270]
push eax
push 0xb0
lea eax, [ebp - 1]
push eax
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x1d4]
call fcn.01028ce7
test al, al
jne 0x1055f91
cmp byte [ebp - 1], bl
jne 0x1055cb2
jmp 0x1055fde
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x20], bl
je 0x1055f9e
mov eax, dword [eax + 0x10]
jmp 0x1055fa0
xor eax, eax
push eax
push ecx
push ecx
mov eax, esp
lea ecx, [ebp - 0x22c]
mov dword [eax], ebx
mov dword [eax + 4], ebx
call fcn.0102020b
cmp al, bl
je 0x1055cb2
push ebx
lea eax, [ebp - 0x218]
push eax
push dword [ebp - 0x21c]
lea ecx, [ebp - 0x1d4]
call fcn.010295b8
test al, al
je 0x1055cb2
inc dword [ebp - 0x18]
push dword [ebp - 0x18]
lea eax, [ebp - 1]
push 0xa0
push eax
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x1d4]
call fcn.010292b8
test al, al
jne 0x1055e79
cmp byte [ebp - 1], bl
jne 0x1055cb2
mov dword [ebp - 0x18], ebx
push ebx
jmp 0x1056bdd
lea eax, [ebp - 0xb0]
push eax
push 0xa0
lea eax, [ebp - 1]
push eax
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x1d4]
mov edi, 0x100b984
call fcn.01028ce7
cmp al, bl
mov byte [ebp - 3], al
jne 0x1056050
cmp byte [ebp - 1], bl
jne 0x1055cb2
lea eax, [ebp - 0x11]
push eax
push dword [ebp + 0x30]
lea eax, [ebp - 0x68]
push dword [ebp + 0x2c]
lea ecx, [ebp - 0x3b8]
push eax
lea eax, [ebp - 0x2d]
push eax
push dword [ebp + 0x14]
mov al, byte [ebp - 3]
push dword [ebp + 0x10]
neg al
push dword [ebp + 0x1c]
mov byte [ebp - 0x11], bl
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
sbb eax, eax
and eax, ecx
push eax
mov al, byte [ebp - 3]
neg al
lea ecx, [ebp - 0x284]
sbb eax, eax
and eax, ecx
mov ecx, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0xc4]
push eax
push esi
call fcn.0105447d
test al, al
je 0x10587d5
mov ecx, dword [ebp + 0x34]
cmp byte [ecx], bl
jne 0x10560c2
cmp byte [ebp - 0x11], bl
jne 0x10560c2
xor al, al
jmp 0x10560c4
mov al, 1
cmp byte [ebp - 0x2d], bl
mov byte [ecx], al
je 0x10562ab
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0xb0]
push ecx
push eax
push edi
push 0x65ba
push dword [ebp + 0x30]
mov dword [ebp - 0x40], 1
mov byte [ebp + 0xb], 1
call fcn.0100cfa9
mov eax, dword [ebp + 0x10]
add esp, 0x14
cmp byte [eax + 0x20], bl
mov edi, eax
je 0x1056111
mov eax, dword [edi + 0x10]
jmp 0x1056113
xor eax, eax
push eax
push ecx
push ecx
mov eax, esp
lea ecx, [ebp - 0xc4]
mov dword [eax], ebx
mov dword [eax + 4], ebx
call fcn.0102020b
cmp al, bl
je 0x1055cb2
push ebx
lea eax, [ebp - 0xb0]
push eax
push dword [ebp - 0xb4]
lea ecx, [ebp - 0x1d4]
call fcn.010295b8
test al, al
je 0x1055cb2
dec dword [ebp - 0x18]
cmp byte [ebp - 3], bl
je 0x1056222
cmp byte [edi + 0x20], bl
je 0x1056167
mov eax, dword [edi + 0x10]
jmp 0x1056169
xor eax, eax
push eax
push ecx
push ecx
mov eax, esp
lea ecx, [ebp - 0x284]
mov dword [eax], ebx
mov dword [eax + 4], ebx
call fcn.0102020b
cmp al, bl
je 0x1055cb2
push ebx
lea eax, [ebp - 0x270]
push eax
push dword [ebp - 0x274]
lea ecx, [ebp - 0x1d4]
call fcn.010295b8
test al, al
je 0x1055cb2
lea eax, [ebp - 0xb0]
push eax
push 0xb0
lea eax, [ebp - 1]
push eax
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x1d4]
call fcn.01028ce7
test al, al
je 0x1056219
cmp byte [edi + 0x20], bl
je 0x10561d7
mov edi, dword [edi + 0x10]
jmp 0x10561d9
xor edi, edi
push edi
push ecx
push ecx
mov eax, esp
lea ecx, [ebp - 0x22c]
mov dword [eax], ebx
mov dword [eax + 4], ebx
call fcn.0102020b
cmp al, bl
je 0x1055cb2
push ebx
lea eax, [ebp - 0x218]
push eax
push dword [ebp - 0x21c]
lea ecx, [ebp - 0x1d4]
call fcn.010295b8
test al, al
je 0x1055cb2
jmp 0x1056222
cmp byte [ebp - 1], bl
jne 0x1055cb2
push 0xffffffffffffffff
push 0x1001378
lea ecx, [ebp - 0x348]
call fcn.0100d6c3
test al, al
je 0x1055cb2
lea eax, [ebp - 0xb0]
push eax
lea ecx, [ebp - 0x348]
call fcn.0101ef8a
test eax, eax
jne 0x1056282
mov eax, dword [ebp - 0x1cc]
and byte [eax + 0x16], 0xfd
push ecx
push ecx
mov eax, esp
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov dword [eax], 1
mov dword [eax + 4], ebx
mov eax, esp
mov dword [eax], ecx
xor ecx, ecx
mov dword [eax + 4], ecx
lea ecx, [esi + 0x330]
call fcn.0100f72f
dec dword [esi + 0xa0]
push ecx
push ecx
mov eax, esp
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov dword [eax], 1
mov dword [eax + 4], ebx
mov eax, esp
mov dword [eax], ecx
xor ecx, ecx
mov dword [eax + 4], ecx
lea ecx, [esi + 0x48]
jmp 0x10567e9
cmp byte [ebp - 0x7b], bl
je 0x1056302
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x20], bl
mov byte [ebp + 0xb], 1
je 0x10562c1
mov eax, dword [eax + 0x10]
jmp 0x10562c3
xor eax, eax
push eax
lea eax, [ebp - 0x1d4]
push eax
lea ecx, [ebp - 0xc4]
call fcn.01021b5b
test al, al
jne 0x1056302
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0xb0]
push ecx
push eax
push edi
push 0x65b9
push dword [ebp + 0x30]
call fcn.0100cfa9
add esp, 0x14
cmp byte [ebp - 3], bl
je 0x105651b
cmp byte [ebp - 0x23b], bl
je 0x1056365
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x20], bl
mov byte [ebp + 0xb], 1
je 0x1056324
mov eax, dword [eax + 0x10]
jmp 0x1056326
xor eax, eax
push eax
lea eax, [ebp - 0x1d4]
push eax
lea ecx, [ebp - 0x284]
call fcn.01021b5b
test al, al
jne 0x1056365
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0xb0]
push ecx
push eax
push edi
push 0x65b9
push dword [ebp + 0x30]
call fcn.0100cfa9
add esp, 0x14
lea eax, [ebp - 0xb0]
push eax
push 0xb0
lea eax, [ebp - 1]
push eax
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x1d4]
mov byte [ebp - 0x12], bl
call fcn.01028ce7
cmp al, bl
mov byte [ebp + 0x23], al
je 0x1056410
push ebx
lea eax, [ebp - 0x12]
push eax
push dword [ebp + 0x30]
lea eax, [ebp - 0x3b8]
push dword [ebp - 0x3ac]
push dword [ebp - 0x3b0]
push eax
lea eax, [ebp - 0x22c]
push eax
call fcn.01043a98
cmp al, bl
jne 0x10565f5
push ecx
push ecx
mov eax, esp
mov dword [eax], ebx
mov dword [eax + 4], ebx
push dword [ebp - 0x3ac]
push dword [ebp - 0x3b0]
call fcn.0100f040
cmp al, bl
je 0x1056410
push ecx
push ecx
mov eax, esp
mov dword [eax], ebx
mov dword [eax + 4], ebx
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
call fcn.0100dd97
cmp al, bl
je 0x1056410
push ebx
lea ecx, [ebp - 0x22c]
call fcn.01021a42
test al, al
jne 0x10565f5
xor eax, eax
cmp byte [ebp + 0x23], bl
lea ecx, [ebp - 0xb0]
push ecx
push dword [ebp - 0x1b8]
setne al
push dword [ebp - 0x1bc]
mov byte [ebp + 0xb], 1
push 0x100b9cc
mov dword [ebp - 0x40], 1
add eax, 0x69b3
push eax
push dword [ebp + 0x30]
call fcn.0100d2ff
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0xb0]
push ecx
push eax
push edi
push 0x65b8
push dword [ebp + 0x30]
call fcn.0100cfa9
add esp, 0x2c
cmp byte [ebp - 0x12], bl
jne 0x1055cb2
cmp dword [ebp - 0x3a0], ebx
je 0x1055cb2
mov ecx, dword [ebp - 0x10]
push ebx
lea eax, [ebp - 0xb0]
push eax
push 0xb0
push dword [ebp - 0x3a4]
push dword [ebp - 0x3a0]
call fcn.0101dc9e
movzx eax, al
push eax
mov eax, dword [ebp - 0x10]
push dword [eax + 0x20]
lea ecx, [ebp - 0x22c]
call fcn.0101f432
test al, al
je 0x1055cb2
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x20], bl
je 0x10564d1
mov eax, dword [eax + 0x10]
jmp 0x10564d3
xor eax, eax
push eax
lea eax, [ebp - 0x1d4]
push eax
lea ecx, [ebp - 0x22c]
call fcn.01021b5b
test al, al
jne 0x10565f5
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0xb0]
push ecx
push eax
push edi
push 0x65b9
push dword [ebp + 0x30]
call fcn.0100cfa9
add esp, 0x14
jmp 0x10565f5
lea eax, [ebp - 0xb0]
push eax
push 0xb0
lea eax, [ebp - 1]
push eax
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x1d4]
call fcn.01028ce7
test al, al
je 0x10565ec
lea eax, [ebp - 0xb0]
push eax
push dword [ebp - 0x1b8]
mov byte [ebp + 0xb], 1
push dword [ebp - 0x1bc]
mov dword [ebp - 0x40], 1
push 0x100b9cc
push 0x69b5
push dword [ebp + 0x30]
call fcn.0100d2ff
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0xb0]
push ecx
push eax
push edi
push 0x65b8
push dword [ebp + 0x30]
call fcn.0100cfa9
mov eax, dword [ebp + 0x10]
add esp, 0x2c
cmp byte [eax + 0x20], bl
je 0x10565aa
mov eax, dword [eax + 0x10]
jmp 0x10565ac
xor eax, eax
push eax
push ecx
push ecx
mov eax, esp
lea ecx, [ebp - 0x22c]
mov dword [eax], ebx
mov dword [eax + 4], ebx
call fcn.0102020b
cmp al, bl
je 0x1055cb2
push ebx
lea eax, [ebp - 0x218]
push eax
push dword [ebp - 0x21c]
lea ecx, [ebp - 0x1d4]
call fcn.010295b8
test al, al
je 0x1055cb2
jmp 0x10565f5
cmp byte [ebp - 1], bl
jne 0x1055cb2
cmp byte [ebp - 0x11], bl
jne 0x10565ff
cmp byte [ebp + 0xb], bl
je 0x1056608
cmp dword [ebp + 0x2c], ebx
je 0x1056bd7
push ecx
push ecx
mov eax, esp
mov dword [eax], 9
mov dword [eax + 4], ebx
mov edi, dword [ebp - 0x1b8]
push edi
push dword [ebp - 0x1bc]
call fcn.0100dde3
cmp al, bl
je 0x105666d
push dword [esi + 0xc]
push dword [esi + 8]
push edi
push dword [ebp - 0x1bc]
call fcn.0100dde3
test al, al
je 0x105666d
push dword [esi + 0x14]
push dword [esi + 0x10]
push edi
push dword [ebp - 0x1bc]
call fcn.0100dde3
test al, al
je 0x105666d
push dword [esi + 0x24]
push dword [esi + 0x20]
push edi
push dword [ebp - 0x1bc]
call fcn.0100dde3
test al, al
jne 0x1056672
cmp byte [esi], 1
ja 0x10566a3
mov eax, dword [ebp - 0x84]
mov eax, dword [eax]
mov edi, dword [ebp + 0x14]
lea ecx, [ebp - 0x74]
push ecx
push eax
mov ecx, edi
call fcn.01036f35
mov eax, dword [ebp - 0x74]
mov ecx, dword [edi + 8]
lea eax, [eax + eax*4]
shl eax, 5
mov eax, dword [eax + ecx + 0x8c]
shr eax, 2
and al, 1
jmp 0x10566a5
xor al, al
cmp dword [ebp - 0x68], ebx
mov byte [ebp - 0x54], al
jg 0x10566bb
jne 0x105677b
cmp al, bl
jne 0x105677b
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x20], bl
je 0x10566c8
mov eax, dword [eax + 0x10]
jmp 0x10566ca
xor eax, eax
cmp dword [ebp + 0x2c], ebx
sete cl
push ecx
push dword [ebp - 0x54]
lea ecx, [ebp - 0x1d4]
push eax
lea eax, [ebp - 0xb0]
push eax
call fcn.01027460
cmp eax, ebx
je 0x1055cb2
xor edx, edx
inc edx
cmp eax, edx
jle 0x105677b
push 3
pop ecx
cmp eax, ecx
jle 0x1056742
cmp eax, 4
je 0x1056711
cmp eax, 5
je 0x1055cb2
jmp 0x105677b
mov eax, dword [ebp - 0x1bc]
mov dword [esi + 0x63c], ecx
mov ecx, dword [ebp - 0x1b8]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0xb0]
push ecx
push eax
push 0x100b984
push 0x65b9
push dword [ebp + 0x30]
call fcn.0100cfa9
jmp 0x1056778
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp + 0x34]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0xb0]
push ecx
mov byte [eax], 1
mov eax, dword [ebp - 0x1bc]
push eax
push 0x100b984
push 0x65c0
push dword [ebp + 0x30]
mov dword [ebp - 0x40], edx
call fcn.0100cfa9
mov byte [ebp + 0xb], 1
add esp, 0x14
mov edi, dword [ebp + 0x18]
add dword [edi + 0x10], 1
adc dword [edi + 0x14], ebx
cmp byte [ebp - 3], bl
je 0x10567a7
lea eax, [ebp - 0x1dc]
push eax
lea ecx, [ebp - 0x284]
call fcn.0101f0c2
mov ecx, dword [eax]
mov eax, dword [eax + 4]
add dword [edi + 0x18], ecx
adc dword [edi + 0x1c], eax
push ecx
push ecx
mov eax, esp
push 9
pop edi
mov dword [eax], edi
mov dword [eax + 4], ebx
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
call fcn.0100f040
cmp al, bl
je 0x10567f3
cmp byte [esi], 2
jb 0x10567f3
push ecx
push ecx
mov eax, esp
push ecx
mov dword [eax], 1
mov dword [eax + 4], ebx
push ecx
mov eax, esp
mov dword [eax], edi
mov dword [eax + 4], ebx
lea ecx, [esi + 0x330]
call fcn.0100f6be
jmp 0x1056bd7
push dword [esi + 0xc]
push dword [esi + 8]
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
call fcn.0100f040
test al, al
je 0x1056941
lea ecx, [ebp - 0x360]
call fcn.0100dbb5
push ecx
push ecx
mov eax, esp
xor edi, edi
inc edi
mov dword [eax], edi
mov dword [eax + 4], ebx
push dword [esi + 0xc]
lea ecx, [esi + 0x330]
push dword [esi + 8]
call fcn.0100f6be
push 0xffffffffffffffff
push 0x1001cf0
lea ecx, [ebp - 0x360]
call fcn.0100d6c3
test al, al
je 0x10568aa
lea eax, [ebp - 0x360]
push eax
lea ecx, [ebp - 0xb0]
call fcn.0101ef8a
test eax, eax
jne 0x1056931
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x20], bl
je 0x1056877
mov eax, dword [eax + 0x10]
jmp 0x1056879
xor eax, eax
cmp dword [ebp + 0x2c], ebx
sete cl
push ecx
push eax
lea ecx, [ebp - 0x1d4]
call fcn.01027686
cmp eax, 2
jl 0x1056931
push 3
pop ecx
cmp eax, ecx
jle 0x10568f8
cmp eax, 4
je 0x10568c7
cmp eax, 5
jne 0x1056931
mov ecx, dword [ebp + 0x30]
push 0x426
call fcn.0100effb
lea ecx, [ebp - 0x360]
call fcn.0100da83
jmp 0x10587d5
mov eax, dword [ebp - 0x1bc]
mov dword [esi + 0x63c], ecx
mov ecx, dword [ebp - 0x1b8]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0xb0]
push ecx
push eax
push 0x100b984
push 0x65b9
push dword [ebp + 0x30]
call fcn.0100cfa9
jmp 0x105692e
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp + 0x34]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0xb0]
push ecx
mov byte [eax], 1
mov eax, dword [ebp - 0x1bc]
push eax
push 0x100b984
push 0x65f1
push dword [ebp + 0x30]
mov dword [ebp - 0x40], edi
call fcn.0100cfa9
mov byte [ebp + 0xb], 1
add esp, 0x14
lea ecx, [ebp - 0x360]
call fcn.0100da83
jmp 0x1056bd7
push dword [esi + 0x14]
push dword [esi + 0x10]
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
call fcn.0100f040
test al, al
je 0x1056a16
push ecx
push ecx
mov eax, esp
mov dword [eax], 1
mov dword [eax + 4], ebx
push dword [esi + 0x14]
lea ecx, [esi + 0x330]
push dword [esi + 0x10]
call fcn.0100f6be
cmp byte [ebp + 0x24], bl
jne 0x1056bd7
mov edi, dword [ebp + 0x10]
cmp byte [edi + 0x20], bl
mov ecx, dword [edi + 0x14]
je 0x1056997
mov eax, dword [edi + 0x10]
jmp 0x1056999
xor eax, eax
lea edx, [ebp - 0xb0]
push edx
lea edx, [ebp - 0x1d4]
push edx
mov edx, dword [ebp - 0x1a0]
shr edx, 1
push edx
push ecx
mov ecx, dword [ebp - 0x10]
push eax
call fcn.0101dc9e
movzx eax, al
push eax
mov eax, dword [ebp - 0x10]
push dword [eax + 0x20]
lea ecx, [ebp - 0x318]
call fcn.01025111
test al, al
je 0x1055cb2
push dword [ebp + 0x34]
mov ecx, dword [ebp - 0x10]
push dword [ebp + 0x30]
lea eax, [ebp - 2]
push dword [ebp + 0x2c]
push edi
push eax
push esi
lea eax, [ebp - 0x1d4]
push eax
lea eax, [ebp - 0x318]
push eax
call fcn.01050700
test al, al
je 0x10587d5
cmp byte [ebp - 2], bl
je 0x1056bd7
mov byte [ebp + 0xb], 1
jmp 0x1056bd7
push dword [esi + 0x24]
push dword [esi + 0x20]
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
call fcn.0100f040
test al, al
je 0x1056acd
push ecx
push ecx
mov eax, esp
mov dword [eax], 1
mov dword [eax + 4], ebx
push dword [esi + 0x24]
lea ecx, [esi + 0x330]
push dword [esi + 0x20]
call fcn.0100f6be
mov edi, dword [ebp + 0x10]
cmp byte [edi + 0x20], bl
mov eax, dword [edi + 0x14]
je 0x1056a63
mov ecx, dword [edi + 0x10]
jmp 0x1056a65
xor ecx, ecx
lea edx, [ebp - 0xb0]
push edx
lea edx, [ebp - 0x1d4]
push edx
mov edx, dword [ebp - 0x1a0]
shr edx, 1
push edx
push eax
push ecx
mov ecx, dword [ebp - 0x10]
call fcn.0101dc9e
movzx eax, al
push eax
mov eax, dword [ebp - 0x10]
push dword [eax + 0x20]
lea ecx, [ebp - 0x318]
call fcn.01025111
test al, al
je 0x1055cb2
push dword [ebp + 0x34]
mov ecx, dword [ebp - 0x10]
push dword [ebp + 0x30]
lea eax, [ebp - 2]
push dword [ebp + 0x2c]
push edi
push eax
push esi
lea eax, [ebp - 0x1d4]
push eax
lea eax, [ebp - 0x318]
push eax
call fcn.0105110a
jmp 0x10569fc
mov edi, dword [ebp + 0x10]
cmp byte [edi + 0x20], bl
mov ecx, dword [edi + 0x14]
je 0x1056add
mov eax, dword [edi + 0x10]
jmp 0x1056adf
xor eax, eax
lea edx, [ebp - 0xb0]
push edx
lea edx, [ebp - 0x1d4]
push edx
mov edx, dword [ebp - 0x1a0]
shr edx, 1
push edx
push ecx
mov ecx, dword [ebp - 0x10]
push eax
call fcn.0101dc9e
movzx eax, al
push eax
mov eax, dword [ebp - 0x10]
push dword [eax + 0x20]
lea ecx, [ebp - 0x318]
call fcn.01025111
test al, al
je 0x1055cb2
push dword [ebp + 0x34]
mov ecx, dword [ebp - 0x10]
push dword [ebp + 0x30]
lea eax, [ebp - 2]
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push edi
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x3c]
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x1d4]
push esi
push eax
lea eax, [ebp - 0x318]
push eax
call fcn.0104f27d
test al, al
je 0x10587d5
cmp byte [ebp - 2], bl
je 0x1056bb4
cmp dword [ebp + 0x2c], ebx
je 0x1056bb0
lea eax, [ebp - 0x1d4]
push eax
lea ecx, [ebp - 0x318]
call fcn.01024bca
test al, al
jne 0x1056bb0
push dword [ebp - 0x2f0]
mov eax, dword [ebp - 0x1bc]
mov ecx, dword [ebp - 0x1b8]
push eax
push 0x100b984
push 0x65b9
push dword [ebp + 0x30]
mov dword [ebp - 0x44], ecx
call fcn.0100cfa9
add esp, 0x14
mov dword [esi + 0x63c], 3
mov byte [ebp + 0xb], 1
cmp dword [ebp - 8], 0xb
jne 0x1056bd7
cmp byte [esi], 2
jb 0x1056bd7
push dword [ebp + 0x30]
lea eax, [ebp - 0x318]
push esi
push eax
call fcn.01055453
test al, al
je 0x10587d5
inc dword [ebp - 0x18]
push dword [ebp - 0x18]
push 0x90
lea eax, [ebp - 1]
push eax
lea eax, [ebp - 0xc4]
lea ecx, [ebp - 0x1d4]
push eax
call fcn.010292b8
test al, al
jne 0x1056019
cmp byte [ebp - 1], bl
jne 0x1055cb2
cmp byte [ebp + 0xb], bl
je 0x1056c3e
cmp dword [ebp + 0x2c], ebx
mov eax, dword [ebp + 0x34]
mov byte [eax], 1
je 0x1056c3e
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x20], bl
je 0x1056c26
mov eax, dword [eax + 0x10]
jmp 0x1056c28
xor eax, eax
push ebx
push ebx
push eax
lea ecx, [ebp - 0x1d4]
call fcn.0102acf1
test al, al
je 0x10587d5
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x2c]
jb 0x1055d56
cmp byte [ebp + 0x24], bl
je 0x1058650
cmp byte [esi + 0x100], bl
je 0x1058650
lea ecx, [ebp - 0x4c0]
call fcn.0101d44d
lea ecx, [ebp - 0x408]
call fcn.01021b06
xor edi, edi
cmp dword [esi + 0x2c], ebx
jbe 0x105837e
push ecx
push ecx
mov eax, esp
push ecx
push ecx
mov dword [eax], 1
mov dword [eax + 4], ebx
mov eax, esp
xor ecx, ecx
mov dword [eax + 4], ecx
lea ecx, [esi + 0xa8]
mov dword [eax], edi
call fcn.01023b63
cmp al, bl
jne 0x1058374
cmp byte [ebp + 0x28], bl
jne 0x10582bc
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x4c0]
push eax
push edi
call fcn.01038f21
test al, al
je 0x10582bc
push ecx
push ecx
mov eax, esp
mov dword [eax], ebx
mov dword [eax + 4], ebx
push dword [ebp - 0x414]
push dword [ebp - 0x418]
call fcn.0100dde3
cmp al, bl
je 0x10582bc
push ecx
push ecx
mov eax, esp
mov dword [eax], ebx
mov dword [eax + 4], ebx
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x4c0]
call fcn.0101d317
mov ecx, dword [eax]
mov dword [ebp - 0x60], ecx
mov ecx, dword [eax + 4]
push ecx
push dword [eax]
mov dword [ebp - 0x5c], ecx
lea ecx, [ebp - 0x4c0]
call fcn.0101d025
test al, al
je 0x1058715
mov ecx, dword [ebp + 0xc]
push edi
push dword [ebp - 0x60]
call fcn.01038c89
test al, al
jne 0x1056ccf
jmp 0x1058715
mov eax, dword [esi + 0x2c]
movzx ecx, word [ebp + 0x20]
imul ecx, eax
shr ecx, 4
mov edx, eax
shr edx, 4
add ecx, edx
lea eax, [ecx + eax*2]
add dword [esi + 0x38], eax
mov dword [ebp - 0x4c], ebx
adc dword [esi + 0x3c], ebx
mov ecx, dword [esi + 0xa0]
cmp ecx, ebx
je 0x1056d96
mov edi, dword [esi + 0x2c]
xor edx, edx
mov eax, edi
div ecx
push ecx
xor edx, edx
push edx
push eax
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x70]
push eax
call fcn.0100bced
mov ecx, dword [eax]
mov edx, dword [eax + 4]
sub edi, ecx
mov eax, ebx
sbb eax, edx
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x4c], eax
jmp 0x1056d9c
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x50], ebx
cmp dword [esi + 0x2c], ebx
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 8], ebx
jbe 0x1057cf3
test byte [ebp - 8], 0xf
jne 0x1056dbe
add dword [ebp - 0x24], 1
adc dword [ebp - 0x20], ebx
push ebx
push 0x64
push dword [ebp - 0x20]
push dword [ebp - 0x24]
call sub.ntdll.dll__allmul
push dword [esi + 0x3c]
push dword [esi + 0x38]
push edx
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.0100bd16
mov eax, dword [eax]
cmp eax, dword [ebp - 0x3c]
je 0x1056e05
push eax
push 0x1001200
push 0x7d0
push dword [ebp + 0x30]
mov dword [ebp - 0x3c], eax
call fcn.0100cfa9
add esp, 0x10
test al, al
je 0x10587d5
mov edx, dword [ebp - 8]
push ecx
push ecx
mov eax, esp
push ecx
push ecx
mov dword [eax], 1
mov dword [eax + 4], ebx
mov eax, esp
xor ecx, ecx
mov dword [eax + 4], ecx
lea ecx, [esi + 0x48]
mov dword [eax], edx
call fcn.01023b63
cmp al, bl
jne 0x1057ce4
mov eax, dword [ebp - 0x50]
add dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x4c]
adc dword [ebp - 0x34], eax
mov ecx, dword [esi + 0xa0]
push ecx
push ecx
mov eax, esp
push dword [ebp - 0x34]
mov dword [eax], ecx
push dword [ebp - 0x38]
mov dword [eax + 4], ebx
call fcn.0100ddbd
cmp al, bl
je 0x1056e6f
mov eax, dword [esi + 0xa0]
sub dword [ebp - 0x38], eax
sbb dword [ebp - 0x34], ebx
add dword [ebp - 0x24], 1
adc dword [ebp - 0x20], ebx
jmp 0x1056e3c
mov eax, dword [ebp - 0x60]
add dword [ebp - 0x24], eax
push 0
pop eax
adc dword [ebp - 0x20], eax
push edi
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov eax, esp
mov dword [eax], ecx
xor ecx, ecx
mov dword [eax + 4], ecx
lea ecx, [ebp - 0x1d4]
call fcn.01027c42
cmp al, bl
je 0x1055cb2
lea ecx, [ebp - 0x1d4]
call fcn.0102d8c9
test al, al
jne 0x1056ef7
push ecx
push ecx
mov eax, esp
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov dword [eax], 1
mov dword [eax + 4], ebx
mov eax, esp
mov dword [eax], ecx
xor ecx, ecx
mov dword [eax + 4], ecx
lea ecx, [esi + 0x278]
call fcn.0101d39b
cmp al, bl
jne 0x1057ce4
push dword [ebp - 8]
push 0x1001200
push 0x659e
push dword [ebp + 0x30]
call fcn.0100cfa9
add esp, 0x10
jmp 0x1057ce4
mov byte [ebp + 0xb], bl
mov dword [ebp - 0x18], ebx
push ebx
jmp 0x105706b
push ebx
lea eax, [ebp - 0x270]
push eax
push 0x90
lea ecx, [ebp - 0x1d4]
call fcn.0102822e
test al, al
jne 0x1057065
xor ecx, ecx
inc ecx
push ecx
push ecx
mov eax, esp
push ecx
mov dword [eax], ecx
push ecx
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 8]
mov dword [eax + 4], ebx
mov eax, esp
mov dword [eax], ecx
xor ecx, ecx
mov dword [eax + 4], ecx
lea ecx, [esi + 0x48]
call fcn.0100f6be
lea eax, [ebp - 0x270]
push eax
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
push 0x100b9cc
push 0x69b2
push dword [ebp + 0x30]
call fcn.0100d2ff
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0x270]
push ecx
push eax
push 0x100b984
push 0x65b8
push dword [ebp + 0x30]
call fcn.0100cfa9
add esp, 0x2c
cmp byte [edi + 0x20], bl
mov byte [ebp + 0xb], 1
je 0x1056fa7
mov eax, dword [edi + 0x10]
jmp 0x1056fa9
xor eax, eax
push eax
push ecx
push ecx
mov eax, esp
lea ecx, [ebp - 0x284]
mov dword [eax], ebx
mov dword [eax + 4], ebx
call fcn.0102020b
cmp al, bl
je 0x1055cb2
push ebx
lea eax, [ebp - 0x270]
push eax
push dword [ebp - 0x274]
lea ecx, [ebp - 0x1d4]
call fcn.010295b8
test al, al
je 0x1055cb2
dec dword [ebp - 0x18]
lea eax, [ebp - 0x270]
push eax
push 0xb0
lea eax, [ebp - 1]
push eax
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x1d4]
call fcn.01028ce7
test al, al
jne 0x105701b
cmp byte [ebp - 1], bl
jne 0x1055cb2
jmp 0x1057065
cmp byte [edi + 0x20], bl
je 0x1057025
mov eax, dword [edi + 0x10]
jmp 0x1057027
xor eax, eax
push eax
push ecx
push ecx
mov eax, esp
lea ecx, [ebp - 0x22c]
mov dword [eax], ebx
mov dword [eax + 4], ebx
call fcn.0102020b
cmp al, bl
je 0x1055cb2
push ebx
lea eax, [ebp - 0x218]
push eax
push dword [ebp - 0x21c]
lea ecx, [ebp - 0x1d4]
call fcn.010295b8
test al, al
je 0x1055cb2
inc dword [ebp - 0x18]
push dword [ebp - 0x18]
push 0xa0
lea eax, [ebp - 1]
push eax
lea eax, [ebp - 0x284]
lea ecx, [ebp - 0x1d4]
push eax
call fcn.010292b8
test al, al
jne 0x1056f03
cmp byte [ebp - 1], bl
jne 0x1055cb2
mov dword [ebp - 0x18], ebx
push ebx
jmp 0x1057c86
lea eax, [ebp - 0xb0]
push eax
push 0xa0
lea eax, [ebp - 1]
push eax
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x1d4]
call fcn.01028ce7
cmp al, bl
mov byte [ebp - 3], al
jne 0x10570d2
cmp byte [ebp - 1], bl
jne 0x1055cb2
lea eax, [ebp - 0x11]
push eax
push dword [ebp + 0x30]
lea eax, [ebp - 0x68]
push dword [ebp + 0x2c]
lea ecx, [ebp - 0x3b8]
push eax
lea eax, [ebp - 0x2d]
push eax
push dword [ebp + 0x14]
mov al, byte [ebp - 3]
neg al
push edi
push dword [ebp + 0x1c]
mov byte [ebp - 0x11], bl
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
sbb eax, eax
and eax, ecx
push eax
mov al, byte [ebp - 3]
neg al
lea ecx, [ebp - 0x284]
sbb eax, eax
and eax, ecx
mov ecx, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0xc4]
push eax
push esi
call fcn.0105447d
test al, al
je 0x10587d5
mov ecx, dword [ebp + 0x34]
cmp byte [ecx], bl
jne 0x1057142
cmp byte [ebp - 0x11], bl
jne 0x1057142
xor al, al
jmp 0x1057144
mov al, 1
cmp byte [ebp - 0x2d], bl
mov byte [ecx], al
je 0x105732a
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0xb0]
push ecx
push eax
push 0x100b984
push 0x65ba
push dword [ebp + 0x30]
mov dword [ebp - 0x40], 1
mov byte [ebp + 0xb], 1
call fcn.0100cfa9
add esp, 0x14
cmp byte [edi + 0x20], bl
je 0x1057190
mov eax, dword [edi + 0x10]
jmp 0x1057192
xor eax, eax
push eax
push ecx
push ecx
mov eax, esp
lea ecx, [ebp - 0xc4]
mov dword [eax], ebx
mov dword [eax + 4], ebx
call fcn.0102020b
cmp al, bl
je 0x1055cb2
push ebx
lea eax, [ebp - 0xb0]
push eax
push dword [ebp - 0xb4]
lea ecx, [ebp - 0x1d4]
call fcn.010295b8
test al, al
je 0x1055cb2
dec dword [ebp - 0x18]
cmp byte [ebp - 3], bl
je 0x10572a1
cmp byte [edi + 0x20], bl
je 0x10571e6
mov eax, dword [edi + 0x10]
jmp 0x10571e8
xor eax, eax
push eax
push ecx
push ecx
mov eax, esp
lea ecx, [ebp - 0x284]
mov dword [eax], ebx
mov dword [eax + 4], ebx
call fcn.0102020b
cmp al, bl
je 0x1055cb2
push ebx
lea eax, [ebp - 0x270]
push eax
push dword [ebp - 0x274]
lea ecx, [ebp - 0x1d4]
call fcn.010295b8
test al, al
je 0x1055cb2
lea eax, [ebp - 0xb0]
push eax
push 0xb0
lea eax, [ebp - 1]
push eax
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x1d4]
call fcn.01028ce7
test al, al
je 0x1057298
cmp byte [edi + 0x20], bl
je 0x1057256
mov eax, dword [edi + 0x10]
jmp 0x1057258
xor eax, eax
push eax
push ecx
push ecx
mov eax, esp
lea ecx, [ebp - 0x22c]
mov dword [eax], ebx
mov dword [eax + 4], ebx
call fcn.0102020b
cmp al, bl
je 0x1055cb2
push ebx
lea eax, [ebp - 0x218]
push eax
push dword [ebp - 0x21c]
lea ecx, [ebp - 0x1d4]
call fcn.010295b8
test al, al
je 0x1055cb2
jmp 0x10572a1
cmp byte [ebp - 1], bl
jne 0x1055cb2
push 0xffffffffffffffff
push 0x1001378
lea ecx, [ebp - 0x348]
call fcn.0100d6c3
test al, al
je 0x1055cb2
lea eax, [ebp - 0xb0]
push eax
lea ecx, [ebp - 0x348]
call fcn.0101ef8a
test eax, eax
jne 0x1057301
mov eax, dword [ebp - 0x1cc]
and byte [eax + 0x16], 0xfd
push ecx
push ecx
mov eax, esp
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov dword [eax], 1
mov dword [eax + 4], ebx
mov eax, esp
mov dword [eax], ecx
xor ecx, ecx
mov dword [eax + 4], ecx
lea ecx, [esi + 0x330]
call fcn.0100f72f
dec dword [esi + 0xa0]
push ecx
push ecx
mov eax, esp
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov dword [eax], 1
mov dword [eax + 4], ebx
mov eax, esp
mov dword [eax], ecx
xor ecx, ecx
mov dword [eax + 4], ecx
lea ecx, [esi + 0x48]
jmp 0x1057888
cmp byte [ebp - 0x7b], bl
je 0x1057382
cmp byte [edi + 0x20], bl
mov byte [ebp + 0xb], 1
je 0x105733d
mov eax, dword [edi + 0x10]
jmp 0x105733f
xor eax, eax
push eax
lea eax, [ebp - 0x1d4]
push eax
lea ecx, [ebp - 0xc4]
call fcn.01021b5b
test al, al
jne 0x1057382
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0xb0]
push ecx
push eax
push 0x100b984
push 0x65b9
push dword [ebp + 0x30]
call fcn.0100cfa9
add esp, 0x14
cmp byte [ebp - 3], bl
je 0x10575a1
cmp byte [ebp - 0x23b], bl
je 0x10573e6
cmp byte [edi + 0x20], bl
mov byte [ebp + 0xb], 1
je 0x10573a1
mov eax, dword [edi + 0x10]
jmp 0x10573a3
xor eax, eax
push eax
lea eax, [ebp - 0x1d4]
push eax
lea ecx, [ebp - 0x284]
call fcn.01021b5b
test al, al
jne 0x10573e6
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0xb0]
push ecx
push eax
push 0x100b984
push 0x65b9
push dword [ebp + 0x30]
call fcn.0100cfa9
add esp, 0x14
lea eax, [ebp - 0xb0]
push eax
push 0xb0
lea eax, [ebp - 1]
push eax
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x1d4]
mov byte [ebp - 0x12], bl
call fcn.01028ce7
cmp al, bl
mov byte [ebp - 0x62], al
je 0x1057491
push ebx
lea eax, [ebp - 0x12]
push eax
push dword [ebp + 0x30]
lea eax, [ebp - 0x3b8]
push dword [ebp - 0x3ac]
push dword [ebp - 0x3b0]
push eax
lea eax, [ebp - 0x22c]
push eax
call fcn.01043a98
cmp al, bl
jne 0x105767c
push ecx
push ecx
mov eax, esp
mov dword [eax], ebx
mov dword [eax + 4], ebx
push dword [ebp - 0x3ac]
push dword [ebp - 0x3b0]
call fcn.0100f040
cmp al, bl
je 0x1057491
push ecx
push ecx
mov eax, esp
mov dword [eax], ebx
mov dword [eax + 4], ebx
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
call fcn.0100dd97
cmp al, bl
je 0x1057491
push ebx
lea ecx, [ebp - 0x22c]
call fcn.01021a42
test al, al
jne 0x105767c
xor eax, eax
cmp byte [ebp - 0x62], bl
lea ecx, [ebp - 0xb0]
push ecx
push dword [ebp - 0x1b8]
setne al
push dword [ebp - 0x1bc]
mov byte [ebp + 0xb], 1
push 0x100b9cc
mov dword [ebp - 0x40], 1
add eax, 0x69b3
push eax
push dword [ebp + 0x30]
call fcn.0100d2ff
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0xb0]
push ecx
push eax
push 0x100b984
push 0x65b8
push dword [ebp + 0x30]
call fcn.0100cfa9
add esp, 0x2c
cmp byte [ebp - 0x12], bl
jne 0x1055cb2
cmp dword [ebp - 0x3a0], ebx
je 0x1055cb2
mov ecx, dword [ebp - 0x10]
push ebx
lea eax, [ebp - 0xb0]
push eax
push 0xb0
push dword [ebp - 0x3a4]
push dword [ebp - 0x3a0]
call fcn.0101dc9e
movzx eax, al
push eax
mov eax, dword [ebp - 0x10]
push dword [eax + 0x20]
lea ecx, [ebp - 0x22c]
call fcn.0101f432
test al, al
je 0x1055cb2
cmp byte [edi + 0x20], bl
je 0x1057553
mov eax, dword [edi + 0x10]
jmp 0x1057555
xor eax, eax
push eax
lea eax, [ebp - 0x1d4]
push eax
lea ecx, [ebp - 0x22c]
call fcn.01021b5b
test al, al
jne 0x105767c
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0xb0]
push ecx
push eax
push 0x100b984
push 0x65b9
push dword [ebp + 0x30]
call fcn.0100cfa9
add esp, 0x14
jmp 0x105767c
lea eax, [ebp - 0xb0]
push eax
push 0xb0
lea eax, [ebp - 1]
push eax
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x1d4]
call fcn.01028ce7
test al, al
je 0x1057673
lea eax, [ebp - 0xb0]
push eax
push dword [ebp - 0x1b8]
mov byte [ebp + 0xb], 1
push dword [ebp - 0x1bc]
mov dword [ebp - 0x40], 1
push 0x100b9cc
push 0x69b5
push dword [ebp + 0x30]
call fcn.0100d2ff
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0xb0]
push ecx
push eax
push 0x100b984
push 0x65b8
push dword [ebp + 0x30]
call fcn.0100cfa9
add esp, 0x2c
cmp byte [edi + 0x20], bl
je 0x1057631
mov eax, dword [edi + 0x10]
jmp 0x1057633
xor eax, eax
push eax
push ecx
push ecx
mov eax, esp
lea ecx, [ebp - 0x22c]
mov dword [eax], ebx
mov dword [eax + 4], ebx
call fcn.0102020b
cmp al, bl
je 0x1055cb2
push ebx
lea eax, [ebp - 0x218]
push eax
push dword [ebp - 0x21c]
lea ecx, [ebp - 0x1d4]
call fcn.010295b8
test al, al
je 0x1055cb2
jmp 0x105767c
cmp byte [ebp - 1], bl
jne 0x1055cb2
cmp byte [ebp - 0x11], bl
jne 0x1057686
cmp byte [ebp + 0xb], bl
je 0x105768f
cmp dword [ebp + 0x2c], ebx
je 0x1057c80
push ecx
push ecx
mov eax, esp
mov dword [eax], 9
mov dword [eax + 4], ebx
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
call fcn.0100dde3
cmp al, bl
je 0x1057702
push dword [esi + 0xc]
push dword [esi + 8]
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
call fcn.0100dde3
test al, al
je 0x1057702
push dword [esi + 0x14]
push dword [esi + 0x10]
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
call fcn.0100dde3
test al, al
je 0x1057702
push dword [esi + 0x24]
push dword [esi + 0x20]
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
call fcn.0100dde3
test al, al
jne 0x1057707
cmp byte [esi], 1
ja 0x1057739
mov eax, dword [ebp - 0x84]
mov eax, dword [eax]
lea ecx, [ebp - 0x74]
push ecx
mov ecx, dword [ebp + 0x14]
push eax
call fcn.01036f35
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx + 8]
lea eax, [eax + eax*4]
shl eax, 5
mov eax, dword [eax + ecx + 0x8c]
shr eax, 2
and al, 1
jmp 0x105773b
xor al, al
cmp dword [ebp - 0x68], ebx
mov byte [ebp - 0x54], al
jg 0x1057751
jne 0x1057812
cmp al, bl
jne 0x1057812
cmp byte [edi + 0x20], bl
je 0x105775b
mov eax, dword [edi + 0x10]
jmp 0x105775d
xor eax, eax
cmp dword [ebp + 0x2c], ebx
sete cl
push ecx
push dword [ebp - 0x54]
lea ecx, [ebp - 0x1d4]
push eax
lea eax, [ebp - 0xb0]
push eax
call fcn.01027460
cmp eax, ebx
je 0x1055cb2
cmp eax, 1
jle 0x1057812
cmp eax, 3
jle 0x10577d5
cmp eax, 4
je 0x10577a0
cmp eax, 5
je 0x1055cb2
jmp 0x1057812
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0xb0]
push ecx
push eax
push 0x100b984
push 0x65b9
push dword [ebp + 0x30]
mov dword [esi + 0x63c], 3
call fcn.0100cfa9
jmp 0x105780f
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp + 0x34]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0xb0]
push ecx
mov byte [eax], 1
mov eax, dword [ebp - 0x1bc]
push eax
push 0x100b984
push 0x65c0
push dword [ebp + 0x30]
mov dword [ebp - 0x40], 1
call fcn.0100cfa9
mov byte [ebp + 0xb], 1
add esp, 0x14
mov eax, dword [ebp + 0x18]
add dword [eax + 0x10], 1
adc dword [eax + 0x14], ebx
cmp byte [ebp - 3], bl
je 0x1057841
lea eax, [ebp - 0x1dc]
push eax
lea ecx, [ebp - 0x284]
call fcn.0101f0c2
mov ecx, dword [eax]
mov edx, dword [ebp + 0x18]
mov eax, dword [eax + 4]
add dword [edx + 0x18], ecx
adc dword [edx + 0x1c], eax
push ecx
push ecx
mov eax, esp
mov dword [eax], 9
mov dword [eax + 4], ebx
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
call fcn.0100f040
cmp al, bl
je 0x1057892
cmp byte [esi], 2
jb 0x1057892
push ecx
push ecx
mov eax, esp
push ecx
mov dword [eax], 1
mov dword [eax + 4], ebx
push ecx
mov eax, esp
mov dword [eax], 9
mov dword [eax + 4], ebx
lea ecx, [esi + 0x330]
call fcn.0100f6be
jmp 0x1057c80
push dword [esi + 0xc]
push dword [esi + 8]
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
call fcn.0100f040
test al, al
je 0x10579df
lea ecx, [ebp - 0x330]
call fcn.0100dbb5
push ecx
push ecx
mov eax, esp
mov dword [eax], 1
mov dword [eax + 4], ebx
push dword [esi + 0xc]
lea ecx, [esi + 0x330]
push dword [esi + 8]
call fcn.0100f6be
push 0xffffffffffffffff
push 0x1001cf0
lea ecx, [ebp - 0x330]
call fcn.0100d6c3
test al, al
je 0x1057945
lea eax, [ebp - 0x330]
push eax
lea ecx, [ebp - 0xb0]
call fcn.0101ef8a
test eax, eax
jne 0x10579cf
cmp byte [edi + 0x20], bl
je 0x1057914
mov eax, dword [edi + 0x10]
jmp 0x1057916
xor eax, eax
cmp dword [ebp + 0x2c], ebx
sete cl
push ecx
push eax
lea ecx, [ebp - 0x1d4]
call fcn.01027686
cmp eax, 2
jl 0x10579cf
cmp eax, 3
jle 0x1057992
cmp eax, 4
je 0x105795d
cmp eax, 5
jne 0x10579cf
mov ecx, dword [ebp + 0x30]
push 0x426
call fcn.0100effb
lea ecx, [ebp - 0x330]
jmp 0x10568bd
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0xb0]
push ecx
push eax
push 0x100b984
push 0x65b9
push dword [ebp + 0x30]
mov dword [esi + 0x63c], 3
call fcn.0100cfa9
jmp 0x10579cc
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp + 0x34]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0xb0]
push ecx
mov byte [eax], 1
mov eax, dword [ebp - 0x1bc]
push eax
push 0x100b984
push 0x65f1
push dword [ebp + 0x30]
mov dword [ebp - 0x40], 1
call fcn.0100cfa9
mov byte [ebp + 0xb], 1
add esp, 0x14
lea ecx, [ebp - 0x330]
call fcn.0100da83
jmp 0x1057c80
push dword [esi + 0x14]
push dword [esi + 0x10]
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
call fcn.0100f040
test al, al
je 0x1057aa8
push ecx
push ecx
mov eax, esp
mov dword [eax], 1
mov dword [eax + 4], ebx
push dword [esi + 0x14]
lea ecx, [esi + 0x330]
push dword [esi + 0x10]
call fcn.0100f6be
cmp byte [edi + 0x20], bl
mov eax, dword [edi + 0x14]
je 0x1057a29
mov ecx, dword [edi + 0x10]
jmp 0x1057a2b
xor ecx, ecx
lea edx, [ebp - 0xb0]
push edx
lea edx, [ebp - 0x1d4]
push edx
mov edx, dword [ebp - 0x1a0]
shr edx, 1
push edx
push eax
push ecx
mov ecx, dword [ebp - 0x10]
call fcn.0101dc9e
movzx eax, al
push eax
mov eax, dword [ebp - 0x10]
push dword [eax + 0x20]
lea ecx, [ebp - 0x318]
call fcn.01025111
test al, al
je 0x1055cb2
push dword [ebp + 0x34]
mov ecx, dword [ebp - 0x10]
push dword [ebp + 0x30]
lea eax, [ebp - 2]
push dword [ebp + 0x2c]
push edi
push eax
push esi
lea eax, [ebp - 0x1d4]
push eax
lea eax, [ebp - 0x318]
push eax
call fcn.01050700
test al, al
je 0x10587d5
cmp byte [ebp - 2], bl
je 0x1057c80
mov byte [ebp + 0xb], 1
jmp 0x1057c80
push dword [esi + 0x24]
push dword [esi + 0x20]
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
call fcn.0100f040
push ecx
push ecx
test al, al
mov eax, esp
mov dword [eax + 4], ebx
je 0x1057b5c
mov dword [eax], 1
push dword [esi + 0x24]
lea ecx, [esi + 0x330]
push dword [esi + 0x20]
call fcn.0100f6be
cmp byte [edi + 0x20], bl
mov eax, dword [edi + 0x14]
je 0x1057af2
mov ecx, dword [edi + 0x10]
jmp 0x1057af4
xor ecx, ecx
lea edx, [ebp - 0xb0]
push edx
lea edx, [ebp - 0x1d4]
push edx
mov edx, dword [ebp - 0x1a0]
shr edx, 1
push edx
push eax
push ecx
mov ecx, dword [ebp - 0x10]
call fcn.0101dc9e
movzx eax, al
push eax
mov eax, dword [ebp - 0x10]
push dword [eax + 0x20]
lea ecx, [ebp - 0x318]
call fcn.01025111
test al, al
je 0x1055cb2
push dword [ebp + 0x34]
mov ecx, dword [ebp - 0x10]
push dword [ebp + 0x30]
lea eax, [ebp - 2]
push dword [ebp + 0x2c]
push edi
push eax
push esi
lea eax, [ebp - 0x1d4]
push eax
lea eax, [ebp - 0x318]
push eax
call fcn.0105110a
jmp 0x1057a8e
mov dword [eax], 0xb
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
call fcn.0100f040
cmp al, bl
je 0x1057c80
cmp byte [edi + 0x20], bl
mov ecx, dword [edi + 0x14]
je 0x1057b88
mov eax, dword [edi + 0x10]
jmp 0x1057b8a
xor eax, eax
lea edx, [ebp - 0xb0]
push edx
lea edx, [ebp - 0x1d4]
push edx
mov edx, dword [ebp - 0x1a0]
shr edx, 1
push edx
push ecx
mov ecx, dword [ebp - 0x10]
push eax
call fcn.0101dc9e
movzx eax, al
push eax
mov eax, dword [ebp - 0x10]
push dword [eax + 0x20]
lea ecx, [ebp - 0x318]
call fcn.01025111
test al, al
je 0x1055cb2
push dword [ebp + 0x34]
mov ecx, dword [ebp - 0x10]
push dword [ebp + 0x30]
lea eax, [ebp - 2]
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
push ebx
push edi
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x3c]
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x1d4]
push esi
push eax
lea eax, [ebp - 0x318]
push eax
call fcn.0104f27d
test al, al
je 0x10587d5
cmp byte [ebp - 2], bl
je 0x1057c5d
cmp dword [ebp + 0x2c], ebx
je 0x1057c59
lea eax, [ebp - 0x1d4]
push eax
lea ecx, [ebp - 0x318]
call fcn.01024bca
test al, al
jne 0x1057c59
push dword [ebp - 0x2f0]
mov eax, dword [ebp - 0x1bc]
mov ecx, dword [ebp - 0x1b8]
push eax
push 0x100b984
push 0x65b9
push dword [ebp + 0x30]
mov dword [ebp - 0x44], ecx
call fcn.0100cfa9
add esp, 0x14
mov dword [esi + 0x63c], 3
mov byte [ebp + 0xb], 1
cmp dword [ebp - 8], 0xb
jne 0x1057c80
cmp byte [esi], 2
jb 0x1057c80
push dword [ebp + 0x30]
lea eax, [ebp - 0x318]
push esi
push eax
call fcn.01055453
test al, al
je 0x10587d5
inc dword [ebp - 0x18]
push dword [ebp - 0x18]
push 0x90
lea eax, [ebp - 1]
push eax
lea eax, [ebp - 0xc4]
lea ecx, [ebp - 0x1d4]
push eax
call fcn.010292b8
test al, al
jne 0x10570a0
cmp byte [ebp - 1], bl
jne 0x1055cb2
cmp byte [ebp + 0xb], bl
je 0x1057ce4
cmp dword [ebp + 0x2c], ebx
mov eax, dword [ebp + 0x34]
mov byte [eax], 1
je 0x1057ce4
cmp byte [edi + 0x20], bl
je 0x1057ccc
mov eax, dword [edi + 0x10]
jmp 0x1057cce
xor eax, eax
push ebx
push ebx
push eax
lea ecx, [ebp - 0x1d4]
call fcn.0102acf1
test al, al
je 0x10587d5
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x2c]
jb 0x1056db1
push dword [ebp - 0x28]
mov eax, dword [edi + 0x14]
push dword [ebp - 0x2c]
xor ecx, ecx
mov cl, byte [0x1060049]
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
push ecx
xor ecx, ecx
mov cl, byte [0x1060048]
push ecx
mov ecx, dword [esi + 0x2c]
push eax
push ecx
push ecx
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x518]
mov dword [eax + 4], ebx
call fcn.01031cbd
cmp al, bl
je 0x1055cb2
xor eax, eax
inc eax
cmp word [ebp + 0x20], ax
mov dword [ebp + 0x14], eax
jb 0x1056c4d
lea ecx, [ebp - 0x518]
call fcn.01031d55
test al, al
je 0x1055cb2
mov eax, dword [ebp - 0x50]
cmp eax, dword [esi + 0x2c]
mov dword [ebp - 8], eax
jae 0x1057f6a
push ebx
push 0x64
push dword [ebp - 0x20]
push dword [ebp - 0x24]
call sub.ntdll.dll__allmul
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], edx
push dword [esi + 0x3c]
lea eax, [ebp - 0x70]
push dword [esi + 0x38]
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
push eax
call fcn.0100bd16
mov eax, dword [eax]
cmp eax, dword [ebp - 0x3c]
mov edi, dword [ebp + 0x30]
je 0x1057db8
push eax
push 0x1001200
push 0x7d0
push edi
mov dword [ebp - 0x3c], eax
call fcn.0100cfa9
add esp, 0x10
test al, al
je 0x10587d5
add dword [ebp - 0x24], 1
adc dword [ebp - 0x20], ebx
add dword [ebp - 0x2c], 0x64
adc dword [ebp - 0x28], ebx
test byte [ebp - 8], 0x7f
jne 0x1057e00
mov eax, dword [esi + 0x2c]
sub eax, dword [ebp - 8]
mov ecx, 0x80
cmp eax, ecx
jbe 0x1057ddd
mov eax, ecx
push dword [ebp + 0x10]
push eax
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x1d4]
mov dword [eax + 4], ebx
call fcn.01027ce4
cmp al, bl
je 0x1058294
lea ecx, [ebp - 0x1d4]
call fcn.010272a1
test al, al
je 0x10582b5
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x1d4]
mov dword [eax + 4], ebx
call fcn.0102d95b
cmp al, bl
jne 0x1057e77
push ecx
push ecx
mov eax, esp
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov dword [eax], 1
mov dword [eax + 4], ebx
mov eax, esp
mov dword [eax], ecx
lea ecx, [esi + 0x278]
mov dword [eax + 4], ebx
call fcn.0101d39b
cmp al, bl
jne 0x1057f47
push dword [ebp - 8]
push 0x1001200
push 0x659e
push dword [ebp + 0x30]
call fcn.0100cfa9
add esp, 0x10
jmp 0x1057f47
lea ecx, [ebp - 0x1d4]
call fcn.0101dca7
test al, al
je 0x1057f47
mov eax, dword [ebp - 0x1cc]
test byte [eax + 0x16], 1
je 0x1057f47
push ecx
push ecx
mov eax, esp
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov dword [eax], 1
mov dword [eax + 4], ebx
mov eax, esp
mov dword [eax], ecx
lea ecx, [esi + 0x470]
mov dword [eax + 4], ebx
call fcn.0101d39b
cmp al, bl
mov byte [ebp + 0x18], al
jne 0x1057ef4
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x20], bl
je 0x1057ed2
mov eax, dword [eax + 0x10]
jmp 0x1057ed4
xor eax, eax
push ebx
push ebx
push dword [ebp + 0x34]
lea ecx, [ebp - 0x1d4]
push dword [ebp + 0x30]
push dword [ebp + 0x2c]
push esi
push eax
call fcn.0102b18d
test al, al
je 0x10587d5
mov eax, dword [ebp - 0x1cc]
mov al, byte [eax + 0x16]
shr al, 1
test al, 1
je 0x1057f27
push ecx
push ecx
mov eax, esp
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov dword [eax], 1
mov dword [eax + 4], ebx
mov eax, esp
mov dword [eax], ecx
lea ecx, [esi + 0x330]
mov dword [eax + 4], ebx
call fcn.0100f6be
lea eax, [ebp - 0x61]
push eax
push dword [ebp + 0x18]
lea eax, [ebp - 0x1d4]
push dword [ebp + 0x30]
lea ecx, [ebp - 0x518]
push eax
call fcn.01031ea4
test al, al
je 0x1057f58
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x2c]
jb 0x1057d7a
jmp 0x1057f6a
cmp byte [ebp - 0x61], bl
je 0x10587d5
mov eax, dword [ebp - 8]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ebx
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov eax, esp
dec ecx
mov dword [eax], ecx
lea ecx, [ebp - 0x518]
mov dword [eax + 4], ebx
call fcn.01031e04
cmp dword [esi + 0x2c], ebx
mov dword [ebp - 8], ebx
jbe 0x105827e
test byte [ebp - 8], 0xf
jne 0x1057f9b
add dword [ebp - 0x24], 1
adc dword [ebp - 0x20], ebx
cmp dword [ebp - 8], 9
je 0x1058225
cmp dword [ebp - 8], 0xb
je 0x1058225
push dword [esi + 0xc]
push dword [esi + 8]
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], ebx
call fcn.0100f040
cmp al, bl
jne 0x1058225
push dword [esi + 0x14]
push dword [esi + 0x10]
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], ebx
call fcn.0100f040
cmp al, bl
jne 0x1058225
push dword [esi + 0x24]
push dword [esi + 0x20]
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], ebx
call fcn.0100f040
cmp al, bl
jne 0x1058225
push ecx
push ecx
mov eax, esp
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov dword [eax], 1
mov dword [eax + 4], ebx
mov eax, esp
mov dword [eax], ecx
lea ecx, [esi + 0x48]
mov dword [eax + 4], ebx
call fcn.01023b63
cmp al, bl
jne 0x1058225
push dword [ebp + 0x10]
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x1d4]
mov dword [eax + 4], ebx
call fcn.01027c42
cmp al, bl
je 0x1055cb2
lea ecx, [ebp - 0x1d4]
call fcn.0102d8c9
test al, al
jne 0x10580af
push ecx
push ecx
mov eax, esp
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov dword [eax], 1
mov dword [eax + 4], ebx
mov eax, esp
mov dword [eax], ecx
lea ecx, [esi + 0x278]
mov dword [eax + 4], ebx
call fcn.0101d39b
cmp al, bl
jne 0x105826f
push dword [ebp - 8]
push 0x1001200
push 0x659e
push dword [ebp + 0x30]
call fcn.0100cfa9
add esp, 0x10
jmp 0x105826f
push ebx
push 0x90
lea eax, [ebp - 1]
push eax
lea eax, [ebp - 0xc4]
push eax
lea ecx, [ebp - 0x1d4]
mov byte [ebp + 0xb], bl
mov dword [ebp - 0x18], ebx
call fcn.010292b8
test al, al
je 0x10581ed
mov edi, dword [ebp + 0x10]
cmp byte [edi + 0x20], bl
mov ecx, dword [edi + 0x14]
je 0x10580e9
mov eax, dword [edi + 0x10]
jmp 0x10580eb
xor eax, eax
lea edx, [ebp - 0xb0]
push edx
lea edx, [ebp - 0x1d4]
push edx
mov edx, dword [ebp - 0x1a0]
shr edx, 1
push edx
push ecx
mov ecx, dword [ebp - 0x10]
push eax
call fcn.0101dc9e
movzx eax, al
push eax
mov eax, dword [ebp - 0x10]
push dword [eax + 0x20]
lea ecx, [ebp - 0x318]
call fcn.01025111
test al, al
je 0x1055cb2
push dword [ebp + 0x34]
mov ecx, dword [ebp - 0x10]
push dword [ebp + 0x30]
lea eax, [ebp - 2]
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
push edi
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x3c]
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x518]
push eax
push esi
lea eax, [ebp - 0x1d4]
push eax
lea eax, [ebp - 0x318]
push eax
call fcn.01052c52
test al, al
je 0x10587d5
cmp byte [ebp - 2], bl
je 0x10581c4
cmp dword [ebp + 0x2c], ebx
je 0x10581c0
lea eax, [ebp - 0x1d4]
push eax
lea ecx, [ebp - 0x318]
call fcn.01024bca
test al, al
jne 0x10581c0
push dword [ebp - 0x2f0]
mov eax, dword [ebp - 0x1bc]
mov ecx, dword [ebp - 0x1b8]
push eax
push 0x100b984
push 0x65b9
push dword [ebp + 0x30]
mov dword [ebp - 0x44], ecx
call fcn.0100cfa9
add esp, 0x14
mov dword [esi + 0x63c], 3
mov byte [ebp + 0xb], 1
inc dword [ebp - 0x18]
push dword [ebp - 0x18]
lea eax, [ebp - 1]
push 0x90
push eax
lea eax, [ebp - 0xc4]
push eax
lea ecx, [ebp - 0x1d4]
call fcn.010292b8
test al, al
jne 0x10580dc
cmp byte [ebp - 1], bl
jne 0x1055cb2
cmp byte [ebp + 0xb], bl
je 0x105826f
cmp dword [ebp + 0x2c], ebx
mov eax, dword [ebp + 0x34]
mov byte [eax], 1
je 0x105826f
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x20], bl
je 0x1058213
mov eax, dword [eax + 0x10]
jmp 0x1058215
xor eax, eax
push ebx
push ebx
push eax
lea ecx, [ebp - 0x1d4]
call fcn.0102acf1
jmp 0x1058267
push ebx
push 0x64
push dword [ebp - 0x20]
push dword [ebp - 0x24]
call sub.ntdll.dll__allmul
push dword [esi + 0x3c]
push dword [esi + 0x38]
push edx
push eax
lea eax, [ebp - 0x1dc]
push eax
call fcn.0100bd16
mov eax, dword [eax]
cmp eax, dword [ebp - 0x3c]
je 0x105826f
push eax
push 0x1001200
push 0x7d0
push dword [ebp + 0x30]
mov dword [ebp - 0x3c], eax
call fcn.0100cfa9
add esp, 0x10
test al, al
je 0x10587d5
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x2c]
jb 0x1057f8e
inc dword [ebp + 0x14]
mov ax, word [ebp + 0x14]
cmp ax, word [ebp + 0x20]
jbe 0x1057d44
jmp 0x1056c4d
mov eax, dword [edi]
push 3
push ebx
push 0x426
mov ecx, edi
call dword [eax + 0xc]
push 0x10011cc
push edi
call fcn.0100cf8e
pop ecx
pop ecx
jmp 0x10587d5
mov ecx, edi
jmp 0x1055cb5
push dword [ebp + 0x10]
push ecx
push ecx
mov eax, esp
xor ecx, ecx
mov dword [eax + 4], ecx
lea ecx, [ebp - 0x1d4]
mov dword [eax], edi
call fcn.01027c42
cmp al, bl
je 0x1058708
lea ecx, [ebp - 0x1d4]
call fcn.0102d8c9
test al, al
jne 0x105832b
push ecx
push ecx
mov eax, esp
push ecx
push ecx
mov dword [eax], 1
mov dword [eax + 4], ebx
mov eax, esp
xor ecx, ecx
mov dword [eax + 4], ecx
lea ecx, [esi + 0x278]
mov dword [eax], edi
call fcn.0101d39b
cmp al, bl
jne 0x1058374
push edi
push 0x1001200
push 0x659e
push dword [ebp + 0x30]
call fcn.0100cfa9
add esp, 0x10
jmp 0x1058374
mov eax, dword [esi + 0x40]
mov word [eax + edi*2], bx
mov dword [ebp - 0x18], ebx
push ebx
jmp 0x1058347
mov eax, dword [esi + 0x40]
lea eax, [eax + edi*2]
inc word [eax]
inc dword [ebp - 0x18]
push dword [ebp - 0x18]
push 0x30
lea eax, [ebp - 1]
push eax
lea eax, [ebp - 0x408]
lea ecx, [ebp - 0x1d4]
push eax
call fcn.010292b8
test al, al
jne 0x1058338
mov eax, dword [ebp - 0x1cc]
mov ax, word [eax + 0x12]
mov ecx, dword [esi + 0x44]
mov word [ecx + edi*2], ax
inc edi
cmp edi, dword [esi + 0x2c]
jb 0x1056c83
mov eax, dword [esi + 0xa0]
xor ecx, ecx
inc ecx
cmp eax, ecx
mov dword [ebp + 0x14], ecx
jb 0x1058391
mov dword [ebp + 0x14], eax
cmp dword [esi + 0x2c], ebx
mov dword [ebp - 8], ebx
jbe 0x105863a
mov dword [ebp + 0x20], ebx
mov eax, dword [ebp + 0x20]
xor edx, edx
div dword [ebp + 0x14]
add eax, 0x5a
cmp eax, dword [ebp - 0x3c]
je 0x10583d1
push eax
push 0x1001200
push 0x7d0
push dword [ebp + 0x30]
mov dword [ebp - 0x3c], eax
call fcn.0100cfa9
add esp, 0x10
test al, al
je 0x1058715
push ecx
push ecx
mov eax, esp
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov dword [eax], 1
mov dword [eax + 4], ebx
mov eax, esp
mov dword [eax], ecx
lea ecx, [esi + 0x48]
mov dword [eax + 4], ebx
call fcn.01023b63
cmp al, bl
jne 0x105862b
push dword [esi + 0x14]
add dword [ebp + 0x20], 0xa
push dword [esi + 0x10]
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], ebx
call fcn.0100f040
cmp al, bl
jne 0x105862b
push dword [esi + 0x24]
push dword [esi + 0x20]
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], ebx
call fcn.0100f040
cmp al, bl
jne 0x105862b
push dword [esi + 0xc]
push dword [esi + 8]
push ecx
push ecx
mov ecx, dword [ebp - 8]
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], ebx
call fcn.0100f040
cmp al, bl
jne 0x105862b
mov ecx, dword [ebp - 8]
cmp ecx, 9
je 0x105862b
push dword [ebp + 0x10]
push ecx
push ecx
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x1d4]
mov dword [eax + 4], ebx
call fcn.01027c42
cmp al, bl
je 0x1058708
lea ecx, [ebp - 0x1d4]
call fcn.0102d8c9
test al, al
jne 0x10584dc
mov edi, dword [ebp - 8]
push ecx
push ecx
mov eax, esp
push ecx
mov dword [eax], 1
mov dword [eax + 4], ebx
push ecx
mov eax, esp
lea ecx, [esi + 0x278]
mov dword [eax], edi
mov dword [eax + 4], ebx
call fcn.0101d39b
cmp al, bl
jne 0x105862b
push edi
push 0x1001200
push 0x659e
push dword [ebp + 0x30]
call fcn.0100cfa9
add esp, 0x10
jmp 0x105862b
mov byte [ebp + 0xb], bl
mov dword [ebp - 0x18], ebx
push ebx
jmp 0x10585ca
mov edi, dword [ebp + 0x10]
cmp byte [edi + 0x20], bl
mov ecx, dword [edi + 0x14]
je 0x10584f8
mov eax, dword [edi + 0x10]
jmp 0x10584fa
xor eax, eax
lea edx, [ebp - 0xb0]
push edx
lea edx, [ebp - 0x1d4]
push edx
mov edx, dword [ebp - 0x1a0]
shr edx, 1
push edx
push ecx
mov ecx, dword [ebp - 0x10]
push eax
call fcn.0101dc9e
movzx eax, al
push eax
mov eax, dword [ebp - 0x10]
push dword [eax + 0x20]
lea ecx, [ebp - 0x318]
call fcn.01025111
test al, al
je 0x1058708
push dword [ebp + 0x34]
mov ecx, dword [ebp - 0x10]
push dword [ebp + 0x30]
lea eax, [ebp - 2]
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
push edi
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x1d4]
push esi
push eax
lea eax, [ebp - 0x318]
push eax
call fcn.0104fe03
test al, al
je 0x1058715
cmp byte [ebp - 2], bl
je 0x10585c4
cmp dword [ebp + 0x2c], ebx
je 0x10585c0
lea eax, [ebp - 0x1d4]
push eax
lea ecx, [ebp - 0x318]
call fcn.01024bca
test al, al
jne 0x10585c0
push dword [ebp - 0x2f0]
mov eax, dword [ebp - 0x1bc]
mov ecx, dword [ebp - 0x1b8]
push eax
push 0x100b984
push 0x65b9
push dword [ebp + 0x30]
mov dword [ebp - 0x6c], ecx
call fcn.0100cfa9
add esp, 0x14
mov dword [esi + 0x63c], 3
mov byte [ebp + 0xb], 1
inc dword [ebp - 0x18]
push dword [ebp - 0x18]
push 0x90
lea eax, [ebp - 1]
push eax
lea eax, [ebp - 0xc4]
lea ecx, [ebp - 0x1d4]
push eax
call fcn.010292b8
test al, al
jne 0x10584e8
cmp byte [ebp - 1], bl
jne 0x1058708
cmp byte [ebp + 0xb], bl
je 0x105862b
cmp dword [ebp + 0x2c], ebx
mov eax, dword [ebp + 0x34]
mov byte [eax], 1
je 0x105862b
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x20], bl
je 0x1058613
mov eax, dword [eax + 0x10]
jmp 0x1058615
xor eax, eax
push ebx
push ebx
push eax
lea ecx, [ebp - 0x1d4]
call fcn.0102acf1
test al, al
je 0x1058715
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x2c]
jb 0x10583a0
lea ecx, [ebp - 0x408]
call fcn.01021b36
lea ecx, [ebp - 0x4c0]
call fcn.0101cb5b
push 0x64
push 0x1001200
push 0x7d0
push dword [ebp + 0x30]
call fcn.0100cfa9
add esp, 0x10
test al, al
je 0x10587d5
push 0x10011cc
push 3
push 2
push 0x65dd
push dword [ebp + 0x30]
call fcn.0100d00a
add esp, 0x14
xor edi, edi
cmp dword [esi + 0x2c], ebx
jbe 0x1058777
mov eax, dword [esi + 0x44]
cmp word [eax + edi*2], bx
je 0x105876d
push dword [ebp + 0x10]
mov byte [0x1060368], 1
push ecx
push ecx
mov eax, esp
xor ecx, ecx
mov dword [eax + 4], ecx
lea ecx, [ebp - 0x1d4]
mov dword [eax], edi
call fcn.01027c42
cmp al, bl
je 0x1055cb2
lea ecx, [ebp - 0x1d4]
call fcn.0102d8c9
test al, al
je 0x105876d
mov ecx, dword [ebp - 0x1cc]
movzx ecx, word [ecx + 0x12]
mov eax, dword [esi + 0x44]
movsx eax, word [eax + edi*2]
push ecx
push ecx
cmp ecx, eax
mov eax, esp
mov dword [eax], edi
jne 0x1058730
xor ecx, ecx
mov dword [eax + 4], ecx
lea ecx, [esi + 0x3b8]
call fcn.0101cbbf
jmp 0x1058740
mov ecx, dword [ebp + 0x30]
push 0x426
call fcn.0100effb
lea ecx, [ebp - 0x408]
call fcn.01021b36
lea ecx, [ebp - 0x4c0]
call fcn.0101cb5b
jmp 0x10587d5
xor ecx, ecx
mov dword [eax + 4], ecx
lea ecx, [esi + 0x3b8]
call fcn.0101d025
cmp al, bl
je 0x1055cb2
mov ecx, dword [esi + 0x44]
mov eax, dword [ebp - 0x1cc]
mov cx, word [ecx + edi*2]
sub word [eax + 0x12], cx
cmp dword [ebp + 0x2c], ebx
je 0x105876d
lea ecx, [ebp - 0x1d4]
call fcn.01027421
test al, al
je 0x10587d5
inc edi
cmp edi, dword [esi + 0x2c]
jb 0x1058693
cmp dword [ebp - 0x40], ebx
je 0x105878d
lea eax, [esi + 0x63c]
cmp dword [eax], 3
je 0x105878d
mov dword [eax], 1
cmp byte [0x1060368], bl
je 0x10587d3
mov ecx, dword [ebp + 0x30]
xor eax, eax
cmp byte [esi + 0x28], bl
je 0x10587b2
cmp dword [ebp + 0x2c], ebx
setne al
add eax, 0x664c
push eax
call fcn.0100effb
jmp 0x10587c3
cmp dword [ebp + 0x2c], ebx
setne al
add eax, 0x664c
push eax
call fcn.0102443f
add esi, 0x63c
cmp dword [esi], ebx
jne 0x10587d3
mov dword [esi], 2
mov bl, 1
lea ecx, [ebp - 0x518]
call fcn.01031c98
lea ecx, [ebp - 0x348]
call fcn.0100da83
lea ecx, [ebp - 0x318]
call fcn.010250ec
lea ecx, [ebp - 0x3b8]
call fcn.0102425f
lea ecx, [ebp - 0x284]
call fcn.01021b36
lea ecx, [ebp - 0xc4]
call fcn.01021b36
lea ecx, [ebp - 0x22c]
call fcn.01021b36
lea ecx, [ebp - 0x1d4]
call fcn.01027c15
pop edi
pop esi
mov al, bl
pop ebx
leave
ret 0x30