Function at 0x10026310
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x2c8
mov eax, dword [0x100a9570]
xor eax, esp
mov dword [esp + 0x2c4], eax
movsd xmm0, qword [0x10094340]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x14]
movsd qword [esp + 0x98], xmm0
movsd xmm0, qword [0x10092680]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 0x10]
mov edx, esi
mov dword [esp + 0x54], eax
xor eax, eax
movsd qword [esp + 0x8c], xmm0
movsd xmm0, qword [0x100942b8]
push edi
mov edi, dword [ebp + 0x18]
mov dword [esp + 0x40], esi
mov dword [esp + 0x38], edi
mov dword [esp + 0x48], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x70], 3
mov dword [esp + 0x74], str._KMGT
movsd qword [esp + 0x98], xmm0
mov dword [esp + 0xc], edi
mov dword [esp + 0x34], ecx
test cl, 3
jne 0x10026439
mov edi, dword [ecx]
mov ecx, edi
mov eax, edi
not ecx
xor eax, 0x25252525
and ecx, 0x80808080
sub eax, 0x1010101
test ecx, eax
jne 0x10026435
mov eax, esi
sub eax, edx
add eax, 0x200
mov dword [esp + 0x10], eax
nop dword [eax]
nop dword [eax + eax]
lea eax, [edi - 0x1010101]
test ecx, eax
jne 0x10026499
cmp dword [esp + 0x44], 0
mov eax, dword [esp + 0x10]
je 0x100263fe
cmp eax, 4
jl 0x10026435
sub eax, 4
mov dword [edx], edi
mov dword [esp + 0x10], eax
add edx, 4
mov eax, dword [esp + 0x34]
add eax, 4
mov dword [esp + 0x24], edx
mov dword [esp + 0x34], eax
mov edi, dword [eax]
mov ecx, edi
mov eax, edi
not ecx
xor eax, 0x25252525
and ecx, 0x80808080
sub eax, 0x1010101
test ecx, eax
je 0x100263e0
mov ecx, dword [esp + 0x34]
mov al, byte [ecx]
cmp al, 0x25
je 0x100264a1
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x44]
test al, al
je 0x10027fed
test ecx, ecx
je 0x10026486
mov eax, edx
sub eax, esi
mov dword [esp + 0x3c], eax
inc eax
cmp eax, 0x200
jl 0x10026486
mov eax, dword [esp + 0x3c]
add dword [esp + 0x48], eax
push eax
push dword [esp + 0x5c]
push esi
call ecx
mov esi, eax
add esp, 0xc
mov dword [esp + 0x40], esi
mov edx, esi
test esi, esi
je 0x10028019
mov cl, byte [edi]
mov byte [edx], cl
inc edx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x24], edx
inc ecx
jmp 0x1002639e
mov edi, dword [esp + 0x34]
mov al, byte [edi]
jmp 0x10026443
movsx eax, byte [ecx + 1]
inc ecx
or edi, 0xffffffff
mov dword [esp + 0x34], ecx
sub eax, 0x20
mov dword [esp + 0x50], 0
mov dword [esp + 0x14], edi
mov dword [esp + 8], 0
mov dword [esp + 0x54], 0
cmp eax, 0x3f
ja case.0x100264e7.33
nop word [eax + eax]
movzx eax, byte [eax + 0x1002805c]
jmp dword [eax*4 + 0x10028038]
or dword [esp + 8], 1
jmp 0x10026548
or dword [esp + 8], 2
jmp 0x10026548
or dword [esp + 8], 4
jmp 0x10026548
or dword [esp + 8], 8
jmp 0x10026548
or dword [esp + 8], 0x40
jmp 0x10026548
mov eax, dword [esp + 8]
test eax, 0x100
je 0x10026535
and eax, 0x800
neg eax
sbb eax, eax
and eax, 0x800
add eax, 0x800
or dword [esp + 8], eax
jmp 0x10026548
or eax, 0x100
mov dword [esp + 8], eax
jmp 0x10026548
or dword [esp + 8], 0x400
movsx eax, byte [ecx + 1]
inc ecx
sub eax, 0x20
mov dword [esp + 0x34], ecx
cmp eax, 0x3f
jbe 0x100264e0
jmp 0x10026561
or dword [esp + 8], 0x10
inc ecx
mov dword [esp + 0x34], ecx
mov al, byte [ecx]
cmp al, 0x2a
jne 0x10026583
mov eax, dword [esp + 0xc]
add dword [esp + 0x38], 4
inc ecx
mov dword [esp + 0x34], ecx
mov eax, dword [eax]
mov dword [esp + 0x50], eax
mov al, byte [ecx]
jmp 0x100265b6
cmp al, 0x30
jl 0x100265b6
mov esi, dword [esp + 0x50]
nop dword [eax + eax]
mov ah, al
cmp ah, 0x39
ja 0x100265b2
movzx eax, ah
lea ecx, [esi - 6]
lea ecx, [esi + ecx*4]
lea esi, [eax + ecx*2]
mov ecx, dword [esp + 0x34]
inc ecx
mov dword [esp + 0x34], ecx
mov al, byte [ecx]
cmp al, 0x30
jge 0x10026590
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x3c], esi
cmp al, 0x2e
jne 0x10026616
mov al, byte [ecx + 1]
inc ecx
mov dword [esp + 0x34], ecx
cmp al, 0x2a
jne 0x100265e0
add dword [esp + 0x38], 4
mov eax, esi
inc ecx
mov dword [esp + 0x34], ecx
mov edi, dword [eax]
mov al, byte [ecx]
jmp 0x10026612
xor edi, edi
mov dword [esp + 0x14], edi
cmp al, 0x30
jl 0x10026616
nop word [eax + eax]
mov ah, al
cmp ah, 0x39
ja 0x10026612
movzx eax, ah
lea ecx, [edi - 6]
lea ecx, [edi + ecx*4]
lea edi, [eax + ecx*2]
mov ecx, dword [esp + 0x34]
inc ecx
mov dword [esp + 0x34], ecx
mov al, byte [ecx]
cmp al, 0x30
jge 0x100265f0
mov dword [esp + 0x14], edi
mov esi, dword [esp + 0x38]
movsx eax, al
add eax, 0xffffffb7
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x40]
cmp eax, 0x31
ja case.0x10026634.74
movzx eax, byte [eax + 0x100280b0]
jmp dword [eax*4 + 0x1002809c]
or dword [esp + 8], 0x200
inc ecx
mov dword [esp + 0x34], ecx
cmp byte [ecx], 0x68
jne case.0x10026634.74
inc ecx
jmp 0x10026692
inc ecx
mov dword [esp + 0x34], ecx
cmp byte [ecx], 0x6c
jne case.0x10026634.74
or dword [esp + 8], 0x20
inc ecx
jmp 0x10026692
lea eax, [ecx + 1]
mov dword [esp + 0x3c], eax
mov al, byte [eax]
cmp al, 0x36
jne 0x1002667f
cmp byte [ecx + 2], 0x34
jne 0x1002667f
or dword [esp + 8], 0x20
add ecx, 3
jmp 0x10026692
cmp al, 0x33
jne 0x1002668e
cmp byte [ecx + 2], 0x32
jne 0x1002668e
add ecx, 3
jmp 0x10026692
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x34], ecx
mov cl, byte [ecx]
movsx eax, cl
add eax, 0xffffffbf
mov byte [esp + 0x5f], cl
mov dword [esp + 0x3c], eax
cmp eax, 0x37
mov al, byte [0x100a9371]
mov byte [esp + 0x1f], al
ja case.0x100266c3.67
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax + 0x10028118]
jmp dword [eax*4 + 0x100280e4]
mov eax, dword [esp + 0xc]
mov ecx, str.null
add dword [esp + 0x38], 4
mov eax, dword [eax]
test eax, eax
cmovne ecx, eax
mov eax, dword [esp + 0x14]
or edi, 0xffffffff
mov dword [esp + 0x30], ecx
test eax, eax
cmovns edi, eax
mov eax, ecx
mov dword [esp + 0x28], eax
test cl, 3
je 0x10026713
nop word [eax + eax]
test edi, edi
je 0x1002675f
cmp byte [eax], 0
je 0x1002675f
inc eax
dec edi
mov dword [esp + 0x28], eax
test al, 3
jne 0x10026700
cmp edi, 4
jb 0x10026747
nop dword [eax + eax]
mov eax, dword [eax]
lea ecx, [eax - 0x1010101]
not eax
and ecx, eax
mov eax, dword [esp + 0x28]
test ecx, 0x80808080
jne 0x10026750
add eax, 4
sub edi, 4
mov dword [esp + 0x28], eax
cmp edi, 4
jae 0x10026720
test edi, edi
je 0x1002675b
nop dword [eax + eax]
cmp byte [eax], 0
je 0x1002675b
inc eax
sub edi, 1
jne 0x10026750
mov ecx, dword [esp + 0x30]
sub eax, ecx
xor cl, cl
xor edi, edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], eax
mov byte [esp + 0xb8], cl
mov byte [esp + 0xc0], cl
mov dword [esp + 0x14], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0xc], edi
jmp 0x100277d6
mov eax, dword [esp + 0xc]
add dword [esp + 0x38], 4
mov al, byte [eax]
jmp 0x100277f0
mov eax, dword [esp + 0xc]
mov ecx, edx
mov edi, dword [esp + 0x38]
sub ecx, esi
add ecx, dword [esp + 0x48]
add edi, 4
mov dword [esp + 0x38], edi
mov eax, dword [eax]
mov dword [eax], ecx
mov ecx, dword [esp + 0x34]
inc ecx
jmp 0x1002639a
cmp cl, 0x41
mov eax, str.0123456789ABCDEFXP
mov ecx, str.0123456789abcdefxp
cmovne eax, ecx
add dword [esp + 0x38], 8
mov dword [esp + 0x20], eax
cmp edi, 0xffffffff
mov eax, dword [esp + 0xc]
movsd xmm0, qword [eax]
mov eax, 6
cmove edi, eax
movsd qword [esp + 0x80], xmm0
mov eax, dword [esp + 0x84]
mov ecx, eax
mov edx, dword [esp + 0x80]
and ecx, 0xfffff
mov dword [esp + 0x18], ecx
mov ecx, eax
sar ecx, 0x14
mov dword [esp + 0x8c], eax
and ecx, 0x7ff
shr eax, 0x1f
sub ecx, 0x3ff
test eax, eax
mov dword [esp + 0x14], edi
mov eax, dword [esp + 8]
mov dword [esp + 0x88], edx
mov dword [esp + 0xc], ecx
je 0x1002684b
or eax, 0x80
mov dword [esp + 8], eax
lea ecx, [esp + 0xb8]
push ecx
push eax
call fcn.10025700
mov ecx, dword [esp + 0x20]
add esp, 8
cmp dword [esp + 0xc], 0xfffffc01
jne 0x10026883
mov eax, edx
or eax, ecx
je 0x1002687b
mov eax, 0xfffffc02
mov dword [esp + 0xc], eax
jmp 0x10026889
xor eax, eax
mov dword [esp + 0xc], eax
jmp 0x10026889
or ecx, 0x100000
shld ecx, edx, 8
shl edx, 8
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], edx
cmp edi, 0xf
jge 0x100268ce
lea eax, [edi*4]
xor edx, edx
mov ecx, 0x3b
sub ecx, eax
xor eax, eax
bts eax, ecx
cmp ecx, 0x20
cmovae edx, eax
xor eax, edx
cmp ecx, 0x40
mov ecx, dword [esp + 0x18]
cmovae edx, eax
add dword [esp + 0x10], eax
adc ecx, edx
mov edx, dword [esp + 0x10]
movsx eax, byte [esp + 0xb8]
mov esi, dword [esp + 0x20]
mov byte [esp + eax + 0xb9], 0x30
movsx eax, byte [esp + 0xb8]
mov byte [esp + eax + 0xba], 0x78
mov eax, ecx
add byte [esp + 0xb8], 2
shr eax, 0x1c
shld ecx, edx, 4
mov dword [esp + 0x18], ecx
mov al, byte [eax + esi]
movzx ecx, byte [esp + 0x109]
shl edx, 4
test edi, edi
mov byte [esp + 0x108], al
lea edi, [esp + 0x109]
movzx eax, byte [0x100a9370]
cmovne ecx, eax
mov eax, dword [esp + 0x14]
mov byte [esp + 0x109], cl
test eax, eax
lea ecx, [esp + 0x10a]
cmovne edi, ecx
mov ecx, eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x4c], ecx
cmp eax, 0xd
jbe 0x10026979
mov ecx, 0xd
mov dword [esp + 0x4c], ecx
jle 0x10026979
add eax, 0xfffffff3
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x14], 0
jmp 0x10026985
mov dword [esp + 0x14], 0
test ecx, ecx
je 0x100269b7
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x4c]
nop dword [eax]
dec esi
mov eax, ecx
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x20]
shr eax, 0x1c
shld ecx, edx, 4
shl edx, 4
mov al, byte [eax + esi]
mov esi, dword [esp + 0x4c]
mov byte [edi], al
inc edi
test esi, esi
jne 0x10026990
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov al, byte [eax + 0x11]
mov byte [esp + 0xc1], al
test ecx, ecx
jns 0x100269dd
neg ecx
mov byte [esp + 0xc2], 0x2d
mov dword [esp + 0xc], ecx
jmp 0x100269e5
mov byte [esp + 0xc2], 0x2b
cmp ecx, 0x3e8
jl 0x100269f4
mov eax, 6
jmp 0x10026a0b
cmp ecx, 0x64
jl 0x10026a00
mov eax, 5
jmp 0x10026a0b
xor eax, eax
cmp ecx, 0xa
setge al
add eax, 3
mov dword [esp + 0x18], eax
mov byte [esp + 0xc0], al
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, eax
mov dword [esp + 0x10], eax
mov al, dl
mov cl, dl
shl al, 2
add cl, al
mov eax, dword [esp + 0xc]
add cl, cl
sub al, cl
mov ecx, dword [esp + 0x18]
add al, 0x30
mov byte [esp + ecx + 0xc0], al
cmp ecx, 3
jbe 0x10026a93
dec ecx
mov eax, 0x66666667
mov dword [esp + 0x18], ecx
mov ecx, edx
imul ecx
mov dword [esp + 0x3c], ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov al, cl
mov dword [esp + 0x10], ecx
mov edx, ecx
shl al, 2
add cl, al
mov eax, dword [esp + 0x3c]
add cl, cl
sub al, cl
mov ecx, dword [esp + 0x18]
add al, 0x30
mov byte [esp + ecx + 0xc0], al
cmp ecx, 3
ja 0x10026a50
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xc8]
sub edi, dword [esp + 0x2c]
sub eax, ecx
sub eax, 0x40
mov dword [esp + 0x4c], edi
lea ecx, [esp + 0x108]
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0xc], 0x3000001
jmp 0x100277c7
cmp cl, 0x47
mov eax, str.0123456789ABCDEFXP
mov ecx, str.0123456789abcdefxp
cmovne eax, ecx
add dword [esp + 0x38], 8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
movsd xmm0, qword [eax]
cmp edi, 0xffffffff
jne 0x10026af8
mov edi, 6
jmp 0x10026b02
test edi, edi
mov eax, 1
cmove edi, eax
lea eax, [edi - 1]
mov dword [esp + 0x14], edi
or eax, 0x80000000
push eax
sub esp, 8
lea eax, [esp + 0x58]
movsd qword [esp], xmm0
push eax
lea eax, [esp + 0xd8]
push eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.10025da0
add esp, 0x1c
test eax, eax
je 0x10026b42
or dword [esp + 8], 0x80
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x20]
cmp edi, ecx
mov dword [esp + 0x30], edx
cmova edi, ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x20], edi
cmp edi, 1
jbe 0x10026b86
test ecx, ecx
je 0x10026b7e
cmp byte [edx + edi - 1], 0x30
jne 0x10026b7e
dec edi
dec ecx
mov dword [esp + 0x20], edi
cmp edi, 1
ja 0x10026b68
mov dword [esp + 0x14], ecx
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x2c], eax
cmp eax, 0xfffffffc
jle 0x10026bcb
cmp eax, dword [esp + 0x3c]
jg 0x10026bcb
test eax, eax
jle 0x10026bbb
cmp eax, edi
jge 0x10026bae
mov ecx, edi
sub ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x10027169
mov dword [esp + 0x14], 0
jmp 0x10027169
cmp ecx, edi
cmovg ecx, edi
sub ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x10027169
cmp ecx, edi
jle 0x10026bd6
dec edi
mov dword [esp + 0x14], edi
jmp 0x10026be3
test ecx, ecx
je 0x10026bdf
dec ecx
mov dword [esp + 0x14], ecx
mov edi, dword [esp + 0x14]
lea eax, [esp + 0xb8]
mov byte [esp + 0xc0], 0
push eax
push dword [esp + 0xc]
call fcn.10025700
add esp, 8
cmp dword [esp + 0x2c], 0x7000
jne 0x10026cb8
mov eax, dword [esp + 0x28]
xor edi, edi
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], 0
jmp 0x100277cb
cmp cl, 0x45
mov eax, str.0123456789ABCDEFXP
mov ecx, str.0123456789abcdefxp
cmovne eax, ecx
add dword [esp + 0x38], 8
mov dword [esp + 0x10], eax
cmp edi, 0xffffffff
mov eax, dword [esp + 0xc]
movsd xmm0, qword [eax]
mov eax, 6
cmove edi, eax
mov eax, edi
mov dword [esp + 0x14], edi
or eax, 0x80000000
push eax
sub esp, 8
lea eax, [esp + 0x58]
movsd qword [esp], xmm0
push eax
lea eax, [esp + 0xd8]
push eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.10025da0
mov edi, dword [esp + 0x3c]
add esp, 0x1c
mov edx, dword [esp + 0x18]
test eax, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], eax
je 0x10026be3
or dword [esp + 8], 0x80
jmp 0x10026be3
mov al, byte [edx]
test edi, edi
movzx ecx, byte [esp + 0x109]
lea edi, [esp + 0x109]
mov byte [esp + 0x108], al
movzx eax, byte [0x100a9370]
cmovne ecx, eax
cmp dword [esp + 0x14], 0
mov byte [esp + 0x109], cl
lea eax, [esp + 0x10a]
mov ecx, dword [esp + 0x28]
cmovne edi, eax
lea eax, [ecx - 1]
cmp eax, dword [esp + 0x14]
jbe 0x10026d04
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x3c], 1
cmp ecx, 1
jbe 0x10026d20
mov esi, dword [esp + 0x3c]
mov al, byte [esi + edx]
inc esi
mov byte [edi], al
inc edi
cmp esi, ecx
jb 0x10026d15
mov eax, dword [esp + 0x14]
sub eax, ecx
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x54], eax
sub ecx, 1
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], ecx
mov al, byte [eax + 0xe]
mov byte [esp + 0xc1], al
jns 0x10026d5e
neg ecx
mov byte [esp + 0xc2], 0x2d
mov dword [esp + 0x2c], ecx
jmp 0x10026d66
mov byte [esp + 0xc2], 0x2b
xor eax, eax
cmp ecx, 0x64
setge al
add eax, 4
mov dword [esp + 0x10], eax
mov byte [esp + 0xc0], al
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, eax
mov dword [esp + 0x18], eax
mov al, dl
mov cl, dl
shl al, 2
add cl, al
mov eax, dword [esp + 0x2c]
add cl, cl
sub al, cl
mov ecx, dword [esp + 0x10]
add al, 0x30
mov byte [esp + ecx + 0xc0], al
dec ecx
mov eax, 0x66666667
mov dword [esp + 0x10], ecx
mov ecx, edx
imul ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x4c], ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov al, cl
mov dword [esp + 0x18], ecx
mov edx, ecx
shl al, 2
add cl, al
mov eax, dword [esp + 0x3c]
add cl, cl
sub al, cl
mov ecx, dword [esp + 0x10]
add al, 0x30
mov byte [esp + ecx + 0xc0], al
cmp ecx, 3
ja 0x10026db1
mov dword [esp + 0xc], 0x3000001
jmp 0x10027548
mov eax, dword [esp + 0xc]
add dword [esp + 0x38], 8
movsd xmm1, qword [eax]
jmp 0x100270b4
cmp cl, 0x42
mov dword [esp + 0x18], str.0123456789ABCDEFXP
mov ecx, dword [esp + 0x18]
mov eax, str.0123456789abcdefxp
cmovne ecx, eax
xor al, al
test byte [esp + 8], 8
mov dword [esp + 0x18], ecx
mov byte [esp + 0xb8], al
je 0x10026e56
mov al, byte [ecx + 0xb]
mov word [esp + 0xb8], 0x3002
mov byte [esp + 0xba], al
mov edi, 0x180
jmp 0x10026ed7
xor al, al
mov dword [esp + 0x18], str.0123456789ABCDEFXP
test byte [esp + 8], 8
mov byte [esp + 0xb8], al
je 0x10026e7f
mov word [esp + 0xb8], 0x3001
mov edi, 0x330
jmp 0x10026ed7
and dword [esp + 8], 0xffffffef
mov dword [esp + 0x14], 8
cmp cl, 0x58
mov dword [esp + 0x18], str.0123456789ABCDEFXP
mov ecx, dword [esp + 0x18]
mov eax, str.0123456789abcdefxp
cmovne ecx, eax
mov edi, 0x440
xor al, al
mov dword [esp + 0x18], ecx
test byte [esp + 8], 8
mov byte [esp + 0xb8], al
je 0x10026ed7
mov al, byte [ecx + 0x10]
mov word [esp + 0xb8], 0x3002
mov byte [esp + 0xba], al
test byte [esp + 8], 0x20
je 0x10026eee
mov ecx, dword [esp + 0xc]
add dword [esp + 0x38], 8
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
jmp 0x10026efb
mov eax, dword [esp + 0xc]
add dword [esp + 0x38], 4
xor ecx, ecx
mov eax, dword [eax]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0x2c8]
mov dword [esp + 0x68], eax
mov dword [esp + 0x10], eax
or eax, dword [esp + 0xc]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], 0
mov byte [esp + 0xc0], 0
jne 0x10026f4e
xor cl, cl
mov byte [esp + 0xb8], cl
cmp dword [esp + 0x14], eax
jne 0x10026f4e
xor edi, edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0xc], edi
jmp 0x10027837
mov edx, dword [esp + 0x30]
xor eax, eax
mov esi, dword [esp + 0x14]
nop dword [eax + eax]
movq xmm1, qword [esp + 0x68]
inc eax
mov dword [esp + 0x28], eax
mov ecx, edi
shr ecx, 8
mov eax, 1
shl eax, cl
dec edx
dec eax
mov dword [esp + 0x3c], ecx
and eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov al, byte [eax + ecx]
mov ecx, dword [esp + 0x3c]
mov byte [edx], al
movd xmm0, ecx
psrlq xmm1, xmm0
movq qword [esp + 0x68], xmm1
mov eax, dword [esp + 0x68]
mov dword [esp + 0x10], eax
or eax, dword [esp + 0x6c]
mov eax, dword [esp + 0x28]
jne 0x10026fb2
cmp eax, esi
jge 0x10026fd6
test byte [esp + 8], 0x40
je 0x10026f60
inc edi
mov eax, edi
shr eax, 4
xor eax, edi
test al, 0xf
mov eax, dword [esp + 0x28]
jne 0x10026f60
mov cl, byte [esp + 0x1f]
dec edx
and edi, 0xfffffff0
inc eax
mov byte [edx], cl
jmp 0x10026f60
and edi, 0xf0
mov dword [esp + 0x30], edx
shl edi, 0x14
lea ecx, [esp + 0x2c8]
sub edi, edx
mov dword [esp + 0x20], eax
add ecx, edi
mov dword [esp + 0xc], ecx
jmp 0x100277c7
test byte [esp + 8], 0x20
je 0x10027046
mov edx, dword [esp + 0xc]
add dword [esp + 0x38], 8
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x2c], edx
cmp cl, 0x75
je 0x1002707e
test edx, edx
jg 0x1002707e
jl 0x10027027
test eax, eax
jae 0x1002707e
mov ecx, dword [esp + 8]
neg eax
mov dword [esp + 0xc], eax
adc edx, 0
neg edx
or ecx, 0x80
mov dword [esp + 0x2c], edx
mov dword [esp + 8], ecx
jmp 0x10027082
mov eax, dword [esp + 0xc]
xor edx, edx
add dword [esp + 0x38], 4
mov dword [esp + 0x2c], edx
mov eax, dword [eax]
mov dword [esp + 0xc], eax
cmp cl, 0x75
je 0x1002707e
mov ecx, dword [esp + 8]
test eax, eax
jns 0x10027082
neg eax
mov dword [esp + 0x2c], edx
or ecx, 0x80
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
jmp 0x10027082
mov ecx, dword [esp + 8]
test ecx, 0x100
je 0x1002756e
test edx, edx
ja 0x1002709f
jb 0x1002709b
cmp eax, 0x400
jae 0x1002709f
xor edi, edi
jmp 0x100270aa
cmp edi, 0xffffffff
mov ecx, 1
cmove edi, ecx
mov ecx, eax
call fcn.1004d9f0
movaps xmm1, xmm0
mov eax, dword [esp + 8]
test eax, 0x100
je 0x1002710e
movsd xmm2, qword [esp + 0x90]
test eax, 0x800
je 0x100270d8
movsd xmm2, qword [esp + 0x98]
cmp eax, 0x4000000
jae 0x1002710e
movsd xmm3, qword [esp + 0xa0]
comisd xmm2, xmm1
jbe 0x100270fa
movaps xmm0, xmm2
xorps xmm0, xmm3
comisd xmm1, xmm0
ja 0x1002710a
add eax, 0x1000000
divsd xmm1, xmm2
cmp eax, 0x4000000
jb 0x100270e8
mov dword [esp + 8], eax
cmp edi, 0xffffffff
mov eax, 6
cmove edi, eax
lea eax, [esp + 0x4c]
push edi
sub esp, 8
mov dword [esp + 0x20], edi
movsd qword [esp], xmm1
push eax
lea eax, [esp + 0xd8]
push eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.10025da0
mov edi, dword [esp + 0x3c]
add esp, 0x1c
mov edx, dword [esp + 0x18]
test eax, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x28], edi
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], eax
je 0x10027169
or dword [esp + 8], 0x80
lea eax, [esp + 0xb8]
mov byte [esp + 0xc0], 0
push eax
push dword [esp + 0xc]
call fcn.10025700
mov ecx, dword [esp + 0x34]
add esp, 8
cmp ecx, 0x7000
jne 0x1002719a
mov dword [esp + 0x30], edx
jmp 0x10026c0d
lea edx, [esp + 0x108]
mov dword [esp + 0x20], edx
test ecx, ecx
jg 0x100272db
mov edi, dword [esp + 0x14]
lea edx, [esp + 0x109]
movzx ecx, byte [esp + 0x109]
test edi, edi
movzx eax, byte [0x100a9370]
cmovne ecx, eax
mov byte [esp + 0x108], 0x30
lea eax, [esp + 0x10a]
mov byte [esp + 0x109], cl
cmovne edx, eax
mov eax, dword [esp + 0x2c]
neg eax
mov dword [esp + 0x20], edx
cmp eax, edi
cmovg eax, edi
mov dword [esp + 0x2c], eax
mov edi, eax
mov dword [esp + 0x10], edi
test eax, eax
je 0x1002721c
mov dword [esp + 0x20], edx
test dl, 3
je 0x10027214
mov byte [edx], 0x30
inc edx
sub edi, 1
jne 0x10027206
mov dword [esp + 0x10], edi
mov dword [esp + 0x20], edx
cmp edi, 4
jl 0x1002724a
mov edx, edi
mov eax, 0x30303030
mov edi, dword [esp + 0x20]
shr edx, 2
mov ecx, edx
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x10]
lea eax, [edx*4]
mov edx, dword [esp + 0x20]
add edx, eax
sub edi, eax
mov dword [esp + 0x20], edx
test edi, edi
je 0x10027264
push edi
push 0x30
push edx
call fcn.1004ecf0
mov edx, dword [esp + 0x2c]
add esp, 0xc
add edx, edi
mov dword [esp + 0x20], edx
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
lea eax, [ecx + edi]
cmp eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
jle 0x1002727f
sub eax, ecx
mov edi, eax
jmp 0x10027281
sub eax, ecx
mov dword [esp + 0x54], eax
mov eax, edi
mov dword [esp + 0x3c], eax
test eax, eax
je 0x100272c8
mov eax, dword [esp + 0x30]
mov esi, edi
sub eax, edx
mov dword [esp + 0x30], eax
nop dword [eax + eax]
mov al, byte [eax + edx]
mov byte [edx], al
inc edx
mov eax, dword [esp + 0x30]
sub esi, 1
jne 0x100272a0
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x14]
sub edx, ecx
mov dword [esp + 0xc], 0x3000001
sub edx, edi
jmp 0x100274c9
mov edx, dword [esp + 0x54]
sub edx, edi
mov dword [esp + 0xc], 0x3000001
jmp 0x100274c9
mov eax, dword [esp + 8]
and eax, 0x40
mov dword [esp + 0x10], eax
je 0x100272ff
mov eax, 0x258
xor edx, edx
sub eax, ecx
div dword [esp + 0x70]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x20]
jmp 0x10027305
xor eax, eax
mov dword [esp + 0x18], eax
mov esi, dword [esp + 0x18]
cmp ecx, edi
mov al, byte [esp + 0x1f]
mov ecx, dword [esp + 0x30]
jb 0x10027436
mov dword [esp + 0xc], 0
cmp dword [esp + 0x10], 0
je 0x10027335
inc esi
cmp esi, 4
jne 0x10027335
xor esi, esi
mov byte [edx], al
inc edx
jmp 0x10027321
mov eax, dword [esp + 0xc]
mov al, byte [eax + ecx]
mov byte [edx], al
inc edx
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
cmp eax, edi
mov al, byte [esp + 0x1f]
jb 0x10027321
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], edx
cmp eax, ecx
jae 0x10027401
mov edi, dword [esp + 0x10]
sub ecx, eax
mov dword [esp + 0x2c], ecx
test edi, edi
jne 0x100273d0
test ecx, ecx
je 0x10027396
nop word [eax + eax]
test dl, 3
je 0x1002738e
mov byte [edx], 0x30
inc edx
sub ecx, 1
jne 0x10027380
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x20], edx
cmp ecx, 4
jb 0x100273d0
shr ecx, 2
mov eax, 0x30303030
mov dword [esp + 0x3c], ecx
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x2c]
lea edx, [edx + eax*4]
mov dword [esp + 0x20], edx
nop word [eax + eax]
sub ecx, 4
sub eax, 1
jne 0x100273c0
mov edi, dword [esp + 0x10]
mov dword [esp + 0x2c], ecx
test ecx, ecx
je 0x10027401
mov eax, dword [esp + 0x18]
test edi, edi
je 0x100273f0
inc eax
cmp eax, 4
jne 0x100273f0
mov cl, byte [esp + 0x1f]
xor eax, eax
mov byte [edx], cl
mov ecx, dword [esp + 0x2c]
jmp 0x100273f8
dec ecx
mov byte [edx], 0x30
mov dword [esp + 0x2c], ecx
inc edx
test ecx, ecx
jne 0x100273d8
mov dword [esp + 0x20], edx
lea ecx, [esp + 0xc8]
mov eax, edx
sub eax, ecx
mov ecx, dword [esp + 0x14]
add eax, 0x2ffffc0
mov dword [esp + 0xc], eax
test ecx, ecx
je 0x100274cd
mov al, byte [0x100a9370]
mov byte [edx], al
inc edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x54], ecx
jmp 0x100274cd
xor edi, edi
cmp dword [esp + 0x10], 0
je 0x1002744c
inc esi
cmp esi, 4
jne 0x1002744c
xor esi, esi
mov byte [edx], al
inc edx
jmp 0x10027438
mov al, byte [edi + ecx]
inc edi
mov byte [edx], al
inc edx
mov al, byte [esp + 0x1f]
cmp edi, dword [esp + 0x2c]
jb 0x10027438
mov eax, edx
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x28]
lea esi, [esp + 0xc8]
sub eax, esi
mov dword [esp + 0x20], edx
add eax, 0x2ffffc0
cmp dword [esp + 0x14], 0
mov dword [esp + 0xc], eax
je 0x10027490
mov al, byte [0x100a9370]
mov byte [edx], al
inc edx
mov dword [esp + 0x20], edx
mov eax, edi
sub eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x14]
jbe 0x100274a4
mov edi, dword [esp + 0x14]
add edi, dword [esp + 0x2c]
cmp dword [esp + 0x10], edi
jae 0x100274bf
mov esi, dword [esp + 0x10]
nop
mov al, byte [esi + ecx]
inc esi
mov byte [edx], al
inc edx
cmp esi, edi
jb 0x100274b0
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x2c]
sub edx, edi
add edx, dword [esp + 0x14]
mov dword [esp + 0x54], edx
mov eax, dword [esp + 8]
mov dword [esp + 0x14], 0
test eax, 0x100
je 0x10027544
mov edx, eax
mov byte [esp + 0xc1], 0x20
shr edx, 0xa
mov edi, eax
not dl
shr edi, 0x18
and dl, 1
mov byte [esp + 0xc0], dl
test edi, edi
je 0x10027544
test eax, 0x800
movzx ecx, dl
mov eax, str._kMGT
cmovne eax, dword [esp + 0x74]
inc dl
mov al, byte [eax + edi]
mov byte [esp + ecx + 0xc1], al
mov eax, dword [esp + 8]
and eax, 0x1800
cmp eax, 0x800
jne 0x1002753d
movzx eax, dl
inc dl
mov byte [esp + eax + 0xc1], 0x69
mov byte [esp + 0xc0], dl
mov edi, dword [esp + 0x20]
lea ecx, [esp + 0xc8]
mov eax, edi
sub eax, ecx
lea ecx, [esp + 0x108]
sub eax, 0x40
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], eax
jmp 0x100277c7
mov eax, dword [esp + 8]
lea ecx, [esp + 0x2c8]
xor edi, edi
and eax, 0x40
mov dword [esp + 0x3c], eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x30], ecx
nop word [eax + eax]
cmp dword [esp + 0x2c], 0
lea esi, [ecx - 8]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], esi
mov dword [esp + 0x10], edx
ja 0x100275d4
mov edi, dword [esp + 0x18]
cmp edx, 0x5f5e100
jae 0x100275d4
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xc], eax
jmp 0x1002766d
mov eax, dword [esp + 0xc]
mov edx, 0x8461cefd
mul edx
mov edi, 0xabcc7711
mov ecx, 0x8461cefd
mov esi, edx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xc]
mul edi
mov dword [esp + 0x60], edx
mov edi, eax
mov eax, dword [esp + 0x2c]
mul ecx
mov dword [esp + 0x78], edx
mov ecx, eax
mov eax, dword [esp + 0x2c]
mov edx, 0xabcc7711
mul edx
add ecx, esi
mov esi, dword [esp + 0x20]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x78]
adc edx, 0
mov dword [esp + 0xc], eax
add edi, ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x78], edi
adc ecx, 0
mov edi, dword [esp + 0x18]
xor eax, eax
add edx, ecx
mov ecx, dword [esp + 0xc]
adc eax, eax
add ecx, edx
mov edx, dword [esp + 0x2c]
adc edx, eax
shrd ecx, edx, 0x1a
shr edx, 0x1a
imul eax, ecx, 0x5f5e100
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x30]
sub edx, eax
mov dword [esp + 0x10], edx
cmp dword [esp + 0x3c], 0
mov eax, dword [esp + 0x28]
jne 0x100276af
nop dword [eax + eax]
mov esi, dword [esp + 0x10]
mov eax, 0x51eb851f
mul edx
sub ecx, 2
shr edx, 5
imul eax, edx, 0x64
mov dword [esp + 0x10], edx
sub esi, eax
mov ax, word [esi*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [ecx], ax
test edx, edx
jne 0x10027680
mov dword [esp + 0x30], ecx
jmp 0x1002770f
mov ecx, eax
mov dword [esp + 0x30], ecx
test edx, edx
je 0x1002770f
nop dword [eax]
mov eax, edi
mov dword [esp + 0x10], edx
dec ecx
inc edi
mov dword [esp + 0x30], ecx
cmp eax, 3
jne 0x100276da
mov al, byte [esp + 0x1f]
xor edi, edi
dec esi
jmp 0x10027701
mov eax, 0xcccccccd
mov dword [esp + 0x30], ecx
mul dword [esp + 0x10]
shr edx, 3
mov al, dl
mov cl, dl
shl al, 2
add cl, al
mov eax, dword [esp + 0x10]
add cl, cl
sub al, cl
mov ecx, dword [esp + 0x30]
add al, 0x30
mov byte [ecx], al
test edx, edx
jne 0x100276c0
mov dword [esp + 0x20], esi
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0xc]
or eax, dword [esp + 0x2c]
je 0x1002774d
mov edx, dword [esp + 0x20]
cmp ecx, edx
je 0x10027590
cmp dword [esp + 0x3c], 0
je 0x10027740
mov eax, edi
inc edi
cmp eax, 3
jne 0x10027740
mov al, byte [esp + 0x1f]
dec ecx
xor edi, edi
dec edx
mov byte [ecx], al
jmp 0x10027744
dec ecx
mov byte [ecx], 0x30
cmp ecx, edx
jne 0x10027725
jmp 0x10027582
cmp byte [ecx], 0x30
jne 0x10027762
lea eax, [esp + 0x2c8]
cmp ecx, eax
je 0x10027762
inc ecx
mov dword [esp + 0x30], ecx
lea eax, [esp + 0xb8]
mov byte [esp + 0xc0], 0
push eax
push dword [esp + 0xc]
call fcn.10025700
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x2d0]
add esp, 8
sub eax, ecx
mov dword [esp + 0x28], eax
mov edx, eax
mov dword [esp + 0x20], eax
jne 0x100277ae
dec ecx
mov eax, 1
mov dword [esp + 0x30], ecx
mov edx, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], eax
mov byte [ecx], 0x30
lea ecx, [edx + 0x3000000]
xor edx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
test ecx, ecx
cmovs ecx, edx
mov dword [esp + 0x14], ecx
mov edi, dword [esp + 0x14]
mov cl, byte [esp + 0xb8]
mov edx, dword [esp + 0x24]
cmp edi, eax
jge 0x10027833
jmp 0x1002782f
mov al, byte [esp + 0x5f]
mov dword [esp + 8], 0
mov dword [esp + 0x50], 0
lea ecx, [esp + 0x2c7]
mov byte [esp + 0x2c7], al
mov dword [esp + 0x30], ecx
mov eax, 1
xor cl, cl
mov dword [esp + 0xc], 0
mov dword [esp + 0x4c], 0
mov byte [esp + 0xc0], cl
mov byte [esp + 0xb8], cl
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], eax
mov edi, dword [esp + 0x28]
movsx eax, byte [esp + 0xc0]
add eax, dword [esp + 0x54]
mov esi, dword [esp + 0x50]
movsx ecx, cl
add ecx, eax
mov eax, dword [esp + 0x14]
add ecx, eax
cmp esi, ecx
cmovl esi, ecx
sub eax, edi
sub esi, ecx
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x40]
test cl, 1
jne 0x10027891
test cl, 0x10
je 0x1002788a
cmp dword [esp + 0x50], eax
cmovg eax, dword [esp + 0x50]
xor ecx, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x50], ecx
jmp 0x10027895
and ecx, 0xffffffbf
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x50]
add eax, ecx
je 0x10027bac
test byte [esp + 8], 1
jne 0x1002798f
test ecx, ecx
jle 0x1002798f
cmp dword [esp + 0x44], 0
mov edi, ecx
mov dword [esp + 0x10], ecx
je 0x100278cf
mov eax, esi
sub eax, edx
add eax, 0x200
cmp ecx, eax
cmovg edi, eax
mov dword [esp + 0x10], edi
sub ecx, edi
mov dword [esp + 0x50], ecx
test edi, edi
je 0x100278f6
nop dword [eax]
test dl, 3
je 0x100278ee
mov byte [edx], 0x20
inc edx
sub edi, 1
jne 0x100278e0
mov dword [esp + 0x10], edi
mov dword [esp + 0x24], edx
cmp edi, 4
jl 0x10027924
mov edx, edi
mov eax, 0x20202020
mov edi, dword [esp + 0x24]
shr edx, 2
mov ecx, edx
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x10]
lea eax, [edx*4]
mov edx, dword [esp + 0x24]
add edx, eax
sub edi, eax
mov dword [esp + 0x24], edx
test edi, edi
je 0x1002793e
push edi
push 0x20
push edx
call fcn.1004ecf0
mov edx, dword [esp + 0x30]
add esp, 0xc
add edx, edi
mov dword [esp + 0x24], edx
mov edi, dword [esp + 0x44]
test edi, edi
je 0x10027977
mov ecx, edx
sub ecx, esi
lea eax, [ecx + 1]
cmp eax, 0x200
jl 0x10027977
add dword [esp + 0x48], ecx
push ecx
push dword [esp + 0x5c]
push esi
call edi
mov esi, eax
add esp, 0xc
mov dword [esp + 0x40], esi
mov edx, esi
mov dword [esp + 0x24], edx
test esi, esi
je 0x10028019
mov ecx, dword [esp + 0x50]
test ecx, ecx
jg 0x100278b0
mov ch, byte [0x100a9371]
mov byte [esp + 0x1f], ch
jmp 0x10027993
mov edi, dword [esp + 0x44]
mov cl, byte [esp + 0xb8]
lea eax, [esp + 0xb9]
mov dword [esp + 0x3c], eax
test cl, cl
je 0x10027a5f
nop dword [eax]
movsx eax, cl
mov dword [esp + 0x18], eax
test edi, edi
je 0x100279db
mov edi, dword [esp + 0x18]
mov eax, esi
sub eax, edx
add eax, 0x200
cmp edi, eax
cmovg edi, eax
mov eax, edi
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x44]
mov dword [esp + 0x18], eax
sub cl, al
mov byte [esp + 0xb8], cl
test eax, eax
je 0x10027a0c
mov ecx, dword [esp + 0x3c]
nop dword [eax]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
sub dword [esp + 0x18], 1
jne 0x100279f0
mov dword [esp + 0x3c], ecx
mov cl, byte [esp + 0xb8]
mov dword [esp + 0x24], edx
test edi, edi
je 0x10027a4e
mov eax, edx
sub eax, esi
mov dword [esp + 0x60], eax
inc eax
cmp eax, 0x200
jl 0x10027a4e
mov eax, dword [esp + 0x60]
add dword [esp + 0x48], eax
push eax
push dword [esp + 0x5c]
push esi
call edi
mov esi, eax
add esp, 0xc
mov dword [esp + 0x40], esi
mov edx, esi
mov dword [esp + 0x24], edx
test esi, esi
je 0x10028019
mov cl, byte [esp + 0xb8]
test cl, cl
jne 0x100279b0
mov al, byte [0x100a9371]
mov byte [esp + 0x1f], al
mov edx, dword [esp + 0xc]
mov ecx, edx
mov eax, dword [esp + 8]
shr ecx, 0x18
and eax, 0x40
mov dword [esp + 0xc], ecx
mov dword [esp + 0x3c], eax
je 0x10027a92
and edx, 0xffffff
inc ecx
add edx, dword [esp + 0x14]
mov eax, edx
xor edx, edx
div ecx
mov eax, dword [esp + 0xc]
sub eax, edx
jmp 0x10027a94
xor eax, eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x10027bac
mov edx, dword [esp + 0x24]
mov ecx, eax
mov dword [esp + 0x18], ecx
test edi, edi
je 0x10027aca
mov eax, esi
sub eax, edx
add eax, 0x200
cmp dword [esp + 0x14], eax
cmovg ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
sub eax, ecx
cmp dword [esp + 0x3c], 0
mov dword [esp + 0x14], eax
jne 0x10027b28
test ecx, ecx
je 0x10027af6
nop dword [eax + eax]
test dl, 3
je 0x10027aee
mov byte [edx], 0x30
inc edx
sub ecx, 1
jne 0x10027ae0
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], edx
cmp ecx, 4
jl 0x10027b28
mov edi, dword [esp + 0x24]
mov edx, ecx
shr edx, 2
mov eax, 0x30303030
mov ecx, edx
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x18]
lea eax, [edx*4]
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x44]
add edx, eax
mov dword [esp + 0x24], edx
sub ecx, eax
test ecx, ecx
je 0x10027b64
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x3c]
test esi, esi
je 0x10027b4b
mov eax, edi
inc edi
cmp eax, dword [esp + 0xc]
jne 0x10027b4b
mov al, byte [esp + 0x1f]
xor edi, edi
mov byte [edx], al
jmp 0x10027b4e
mov byte [edx], 0x30
inc edx
sub ecx, 1
jne 0x10027b34
mov esi, dword [esp + 0x40]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x44]
mov dword [esp + 0x24], edx
test edi, edi
je 0x10027ba0
sub edx, esi
lea eax, [edx + 1]
cmp eax, 0x200
jl 0x10027ba0
add dword [esp + 0x48], edx
push edx
push dword [esp + 0x5c]
push esi
call edi
mov esi, eax
add esp, 0xc
mov dword [esp + 0x40], esi
mov edx, esi
mov dword [esp + 0x24], edx
test esi, esi
je 0x10028019
mov al, byte [0x100a9371]
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0x14]
test eax, eax
jg 0x10027aa4
mov cl, byte [esp + 0xb8]
lea edi, [esp + 0xb9]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], edi
test cl, cl
je 0x10027c7b
nop word [eax + eax]
cmp dword [esp + 0x44], 0
movsx eax, cl
mov dword [esp + 0xc], eax
je 0x10027bfe
mov eax, esi
mov esi, dword [esp + 0xc]
sub eax, edx
add eax, 0x200
cmp esi, eax
cmovg esi, eax
mov eax, esi
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0xc], eax
sub cl, al
mov byte [esp + 0xb8], cl
test eax, eax
je 0x10027c2c
nop dword [eax + eax]
mov al, byte [edi]
inc edi
mov byte [edx], al
inc edx
sub dword [esp + 0xc], 1
jne 0x10027c10
mov cl, byte [esp + 0xb8]
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], edx
cmp dword [esp + 0x44], 0
je 0x10027c73
mov eax, edx
sub eax, esi
mov dword [esp + 0x60], eax
inc eax
cmp eax, 0x200
jl 0x10027c73
mov eax, dword [esp + 0x60]
add dword [esp + 0x48], eax
push eax
push dword [esp + 0x5c]
push esi
call dword [esp + 0x50]
mov esi, eax
add esp, 0xc
mov dword [esp + 0x40], esi
mov edx, esi
mov dword [esp + 0x24], edx
test esi, esi
je 0x10028019
mov cl, byte [esp + 0xb8]
test cl, cl
jne 0x10027bd0
mov edi, dword [esp + 0x28]
test edi, edi
je 0x10027d5e
nop word [eax + eax]
cmp dword [esp + 0x44], 0
mov ecx, edi
mov dword [esp + 0x10], edi
je 0x10027caf
mov eax, esi
sub eax, edx
add eax, 0x200
cmp edi, eax
cmovg ecx, eax
mov dword [esp + 0x10], ecx
sub edi, ecx
cmp ecx, 4
jl 0x10027ced
mov esi, ecx
shr esi, 2
mov eax, esi
neg eax
lea ecx, [ecx + eax*4]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
nop word [eax + eax]
mov eax, dword [ecx]
add ecx, 4
mov dword [edx], eax
add edx, 4
sub esi, 1
jne 0x10027cd0
mov esi, dword [esp + 0x40]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x24], edx
jmp 0x10027cf1
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x10], 0
je 0x10027d17
mov esi, dword [esp + 0x10]
nop dword [eax]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
sub esi, 1
jne 0x10027d00
mov esi, dword [esp + 0x40]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x10027d56
mov eax, edx
sub eax, esi
mov dword [esp + 0x60], eax
inc eax
cmp eax, 0x200
jl 0x10027d56
mov eax, dword [esp + 0x60]
add dword [esp + 0x48], eax
push eax
push dword [esp + 0x5c]
push esi
call ecx
mov esi, eax
add esp, 0xc
mov dword [esp + 0x40], esi
mov edx, esi
mov dword [esp + 0x24], edx
test esi, esi
je 0x10028019
test edi, edi
jne 0x10027c90
mov eax, dword [esp + 0x54]
test eax, eax
je 0x10027e4b
mov ecx, dword [esp + 0x44]
nop
mov edi, eax
mov dword [esp + 0x10], edi
test ecx, ecx
je 0x10027d92
mov eax, esi
sub eax, edx
add eax, 0x200
cmp dword [esp + 0x54], eax
cmovg edi, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x10], edi
sub eax, edi
mov dword [esp + 0x54], eax
test edi, edi
je 0x10027db6
nop dword [eax]
test dl, 3
je 0x10027dae
mov byte [edx], 0x30
inc edx
sub edi, 1
jne 0x10027da0
mov dword [esp + 0x10], edi
mov dword [esp + 0x24], edx
cmp edi, 4
jl 0x10027de8
mov edx, edi
mov eax, 0x30303030
mov edi, dword [esp + 0x24]
shr edx, 2
mov ecx, edx
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x10]
lea eax, [edx*4]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x44]
add edx, eax
mov dword [esp + 0x24], edx
sub edi, eax
test edi, edi
je 0x10027e06
push edi
push 0x30
push edx
call fcn.1004ecf0
mov edx, dword [esp + 0x30]
add esp, 0xc
mov ecx, dword [esp + 0x44]
add edx, edi
mov dword [esp + 0x24], edx
test ecx, ecx
je 0x10027e3f
mov edi, edx
sub edi, esi
lea eax, [edi + 1]
cmp eax, 0x200
jl 0x10027e3f
add dword [esp + 0x48], edi
push edi
push dword [esp + 0x5c]
push esi
call ecx
mov esi, eax
add esp, 0xc
mov dword [esp + 0x40], esi
mov edx, esi
mov dword [esp + 0x24], edx
test esi, esi
je 0x10028019
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x10027d70
cmp byte [esp + 0xc0], 0
lea edi, [esp + 0xc1]
mov dword [esp + 0x18], edi
je 0x10027ef8
nop dword [eax]
nop dword [eax + eax]
cmp dword [esp + 0x44], 0
movsx ecx, byte [esp + 0xc0]
je 0x10027e8d
mov eax, esi
sub eax, edx
add eax, 0x200
cmp ecx, eax
cmovg ecx, eax
sub byte [esp + 0xc0], cl
test ecx, ecx
je 0x10027eab
mov al, byte [edi]
inc edi
mov byte [edx], al
inc edx
sub ecx, 1
jne 0x10027e98
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x10027eea
mov eax, edx
sub eax, esi
mov dword [esp + 0x60], eax
inc eax
cmp eax, 0x200
jl 0x10027eea
mov eax, dword [esp + 0x60]
add dword [esp + 0x48], eax
push eax
push dword [esp + 0x5c]
push esi
call ecx
mov esi, eax
add esp, 0xc
mov dword [esp + 0x40], esi
mov edx, esi
mov dword [esp + 0x24], edx
test esi, esi
je 0x10028019
cmp byte [esp + 0xc0], 0
jne 0x10027e70
test byte [esp + 8], 1
je 0x10027fdf
mov ecx, dword [esp + 0x50]
test ecx, ecx
jle 0x10027fdf
nop
cmp dword [esp + 0x44], 0
mov edi, ecx
mov dword [esp + 0x10], ecx
je 0x10027f2f
mov eax, esi
sub eax, edx
add eax, 0x200
cmp ecx, eax
cmovg edi, eax
mov dword [esp + 0x10], edi
sub ecx, edi
mov dword [esp + 0x50], ecx
test edi, edi
je 0x10027f56
nop dword [eax]
test dl, 3
je 0x10027f4e
mov byte [edx], 0x20
inc edx
sub edi, 1
jne 0x10027f40
mov dword [esp + 0x10], edi
mov dword [esp + 0x24], edx
cmp edi, 4
jl 0x10027f84
mov edx, edi
mov eax, 0x20202020
mov edi, dword [esp + 0x24]
shr edx, 2
mov ecx, edx
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x10]
lea eax, [edx*4]
mov edx, dword [esp + 0x24]
add edx, eax
sub edi, eax
mov dword [esp + 0x24], edx
test edi, edi
je 0x10027f9e
push edi
push 0x20
push edx
call fcn.1004ecf0
mov edx, dword [esp + 0x30]
add esp, 0xc
add edx, edi
mov dword [esp + 0x24], edx
mov edi, dword [esp + 0x44]
test edi, edi
je 0x10027fd3
mov ecx, edx
sub ecx, esi
lea eax, [ecx + 1]
cmp eax, 0x200
jl 0x10027fd3
add dword [esp + 0x48], ecx
push ecx
push dword [esp + 0x5c]
push esi
call edi
mov esi, eax
add esp, 0xc
mov dword [esp + 0x40], esi
mov edx, esi
mov dword [esp + 0x24], edx
test esi, esi
je 0x10028019
mov ecx, dword [esp + 0x50]
test ecx, ecx
jne 0x10027f10
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
inc ecx
jmp 0x1002639a
test ecx, ecx
jne 0x10027ff5
mov byte [edx], cl
jmp 0x10028019
mov edi, edx
sub edi, esi
lea eax, [edi + 0x1ff]
cmp eax, 0x200
jl 0x10028019
add dword [esp + 0x48], edi
push edi
push dword [esp + 0x5c]
push esi
call ecx
mov esi, eax
add esp, 0xc
mov edx, esi
mov ecx, dword [esp + 0x2cc]
sub edx, esi
mov eax, dword [esp + 0x48]
pop edi
pop esi
xor ecx, esp
add eax, edx
call fcn.1004d4b3
mov esp, ebp
pop ebp
ret