Function at 0x180e015c
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xf4
mov eax, dword [0x1820f00c]
xor eax, esp
mov dword [esp + 0xf0], eax
push ebx
mov ebx, ecx
xor ecx, ecx
and dword [esp + 0x30], ecx
push esi
push edi
mov edi, edx
mov dword [esp + 0x2c], ebx
mov edx, dword [ebp + 8]
xor esi, esi
test byte [ebx + 0x15], 2
mov dword [esp + 0x14], edx
mov dword [esp + 0x48], ecx
je 0x180e01ae
mov eax, dword [edx]
add edx, 4
mov dword [esp + 0x14], edx
mov dword [esp + 0x38], eax
mov byte [esp + 0x12], 1
jmp 0x180e01b2
mov byte [esp + 0x12], cl
movsx eax, byte [edi]
test eax, eax
je case.default.0x180e043b
fldz
fstp qword [esp + 0x68]
fld qword [0x182033e0]
fstp qword [esp + 0x88]
fld qword [0x182033d8]
fstp qword [esp + 0x80]
fld1
fstp qword [esp + 0x70]
fld qword [0x182034e0]
fstp qword [esp + 0x90]
fld qword [0x182034a0]
fstp qword [esp + 0x98]
fld qword [0x182033f8]
fstp qword [esp + 0x78]
fld qword [0x182033d0]
fstp qword [esp + 0xa0]
fld qword [0x18203478]
fstp qword [esp + 0xa8]
cmp eax, 0x25
je 0x180e024b
mov esi, edi
inc edi
mov al, byte [edi]
test al, al
je 0x180e0233
cmp al, 0x25
jne 0x180e0228
mov eax, edi
mov edx, esi
sub eax, esi
mov ecx, ebx
push eax
call fcn.180e12ad
cmp byte [edi], 0
pop ecx
je case.default.0x180e043b
inc edi
movsx ecx, byte [edi]
test ecx, ecx
je 0x180e10f0
xor eax, eax
push 3
mov byte [esp + 0x2f], al
mov byte [esp + 0x1e], al
mov byte [esp + 0x14], al
mov byte [esp + 0x1f], al
mov byte [esp + 0x15], al
mov byte [esp + 0x13], al
pop edx
mov eax, ecx
sub eax, 0x20
je 0x180e02c3
sub eax, 1
je 0x180e02bc
dec eax
sub eax, 1
je 0x180e02b5
sub eax, 8
je 0x180e02ae
sub eax, 1
je 0x180e02a7
sub eax, 1
je 0x180e02a0
sub eax, edx
jne 0x180e02d0
mov byte [esp + 0x2b], 1
jmp 0x180e02c8
mov byte [esp + 0xf], 1
jmp 0x180e02c8
mov byte [esp + 0x1b], 0x2c
jmp 0x180e02c8
mov byte [esp + 0x11], 0x2b
jmp 0x180e02c8
mov byte [esp + 0x10], 1
jmp 0x180e02c8
mov byte [esp + 0x1a], 1
jmp 0x180e02c8
mov byte [esp + 0x11], 0x20
inc edi
movsx ecx, byte [edi]
test ecx, ecx
jne 0x180e0274
mov edx, dword [esp + 0x14]
mov dword [esp + 0x3c], edi
cmp ecx, 0x2a
jne 0x180e0328
mov bl, byte [esp + 0x12]
test bl, bl
je 0x180e02f4
mov ecx, dword [esp + 0x38]
call fcn.180e0118
mov edx, dword [esp + 0x14]
jmp 0x180e02fd
mov eax, dword [edx]
add edx, 4
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], eax
test eax, eax
jns 0x180e031e
mov byte [esp + 0xf], 1
cmp eax, 0x80000001
jl 0x180e0319
neg eax
mov dword [esp + 0x20], eax
jmp 0x180e031e
and dword [esp + 0x20], 0
inc edi
mov dword [esp + 0x3c], edi
movsx ecx, byte [edi]
jmp 0x180e0356
xor eax, eax
cmp ecx, 0x30
jl 0x180e0349
cmp ecx, 0x39
ja 0x180e0345
imul eax, eax, 0xa
add ecx, 0xffffffd0
add eax, ecx
inc edi
movsx ecx, byte [edi]
cmp ecx, 0x30
jge 0x180e032f
mov dword [esp + 0x3c], edi
mov bl, byte [esp + 0x12]
and eax, 0x7fffffff
mov dword [esp + 0x20], eax
cmp ecx, 0x2e
jne 0x180e03c7
inc edi
mov dword [esp + 0x3c], edi
movsx ecx, byte [edi]
cmp ecx, 0x2a
jne 0x180e039b
test bl, bl
je 0x180e0377
mov ecx, dword [esp + 0x38]
call fcn.180e0118
jmp 0x180e0380
mov eax, dword [edx]
add edx, 4
mov dword [esp + 0x14], edx
inc edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3c], edi
movsx ecx, byte [edi]
test eax, eax
jns 0x180e03cc
cmp eax, 0x80000001
jl 0x180e03c7
neg eax
jmp 0x180e03c1
xor eax, eax
cmp ecx, 0x30
jl 0x180e03bc
cmp ecx, 0x39
ja 0x180e03b8
imul eax, eax, 0xa
add ecx, 0xffffffd0
add eax, ecx
inc edi
movsx ecx, byte [edi]
cmp ecx, 0x30
jge 0x180e03a2
mov dword [esp + 0x3c], edi
and eax, 0x7fffffff
mov dword [esp + 0x1c], eax
jmp 0x180e03cc
or dword [esp + 0x1c], 0xffffffff
cmp ecx, 0x6c
jne 0x180e03ec
inc edi
mov dl, 1
mov dword [esp + 0x3c], edi
movsx ecx, byte [edi]
cmp ecx, 0x6c
jne 0x180e03ee
inc dl
inc edi
mov dword [esp + 0x3c], edi
movsx ecx, byte [edi]
jmp 0x180e03ee
xor dl, dl
mov edi, 0x181d2360
mov byte [esp + 0x13], 0x11
mov dword [esp + 0x34], edi
xor ebx, ebx
movsx eax, byte [edi]
cmp ecx, eax
je 0x180e041b
add edi, 6
inc ebx
cmp edi, 0x181d23ea
jl 0x180e03fe
mov ch, byte [esp + 0x13]
mov ebx, dword [esp + 0x34]
jmp 0x180e042f
imul ebx, ebx, 6
add ebx, 0x181d2360
mov dword [esp + 0x34], ebx
mov ch, byte [ebx + 3]
mov byte [esp + 0x13], ch
movzx eax, ch
cmp eax, 0x10
ja case.default.0x180e043b
jmp dword [eax*4 + 0x180e1114]
mov dl, 1
mov byte [esp + 0x1b], 0
test byte [ebx + 2], 1
je 0x180e04b7
cmp byte [esp + 0x12], 0
je 0x180e0461
mov ecx, dword [esp + 0x38]
call fcn.180e0118
jmp 0x180e0487
mov eax, dword [esp + 0x14]
test dl, dl
je 0x180e047c
cmp dl, 2
jne 0x180e047c
mov ebx, dword [eax]
add eax, 8
mov dword [esp + 0x14], eax
mov edi, dword [eax - 4]
jmp 0x180e048b
add eax, 4
mov dword [esp + 0x14], eax
mov eax, dword [eax - 4]
cdq
mov ebx, eax
mov edi, edx
test edi, edi
jg 0x180e04b1
jl 0x180e0495
test ebx, ebx
jae 0x180e04b1
test ebx, ebx
jne 0x180e04a6
mov eax, 0x80000000
cmp edi, eax
jne 0x180e04a6
mov edi, eax
jmp 0x180e04ad
neg ebx
adc edi, 0
neg edi
mov cl, 0x2d
jmp 0x180e04f1
mov cl, byte [esp + 0x11]
jmp 0x180e04f5
cmp byte [esp + 0x12], 0
je 0x180e04cd
mov ecx, dword [esp + 0x38]
call fcn.180e0118
mov ebx, eax
mov edi, edx
jmp 0x180e04ef
mov eax, dword [esp + 0x14]
test dl, dl
je 0x180e04e4
cmp dl, 2
jne 0x180e04e4
mov ebx, dword [eax]
add eax, 8
mov edi, dword [eax - 4]
jmp 0x180e04eb
mov ebx, dword [eax]
add eax, 4
xor edi, edi
mov dword [esp + 0x14], eax
xor cl, cl
mov byte [esp + 0x11], cl
mov eax, ebx
or eax, edi
jne 0x180e04ff
mov byte [esp + 0x10], al
cmp byte [esp + 0x2b], 0
je 0x180e0523
xor eax, eax
test cl, cl
mov ecx, dword [esp + 0x20]
setne al
sub ecx, eax
mov eax, dword [esp + 0x1c]
cmp eax, ecx
jge 0x180e0527
mov eax, ecx
mov dword [esp + 0x1c], eax
jmp 0x180e0527
mov eax, dword [esp + 0x1c]
cmp eax, 0x25
jge 0x180e0540
push 0x46
pop esi
lea eax, [esp + 0xb0]
mov dword [esp + 0x30], esi
mov dword [esp + 0x24], eax
jmp 0x180e057b
push 3
cdq
pop ecx
idiv ecx
push 0xa
cdq
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x20]
cdq
add esi, eax
pop eax
adc ecx, edx
add esi, eax
mov dword [esp + 0x30], esi
adc ecx, 0
push ecx
push esi
call fcn.180dfa31
pop ecx
pop ecx
mov ecx, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x48], ecx
test ecx, ecx
je 0x180e0fae
dec esi
add esi, eax
cmp byte [esp + 0x13], 0xf
jne 0x180e05da
push 0
push 0xa
pop eax
push eax
push edi
push ebx
call fcn.181a2b80
mov dword [esp + 0x40], eax
cmp eax, 4
jge 0x180e05bc
push 0
push 0xa
pop eax
push eax
push edi
push ebx
call fcn.181862c0
push 0
push 0xa
push edx
push eax
call fcn.181a2b80
cmp eax, 1
jne 0x180e05c0
test edx, edx
jne 0x180e05c0
xor ecx, ecx
jmp 0x180e05c4
mov ecx, dword [esp + 0x40]
mov al, byte [ecx*2 + 0x181d2ec5]
mov byte [esi - 1], al
sub esi, 2
mov al, byte [ecx*2 + str.thstndrd]
mov byte [esi], al
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 4]
add eax, 0x181cfeb0
mov dword [esp + 0x44], eax
movzx eax, byte [ecx + 1]
cdq
mov ecx, edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x4c], ecx
push ebx
push ecx
push eax
push edi
push ebx
dec esi
call fcn.18186480
mov dword [esp + 0x60], ebx
pop ebx
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x44]
mov al, byte [eax + ecx]
mov ecx, dword [esp + 0x4c]
mov byte [esi], al
mov eax, dword [esp + 0x40]
test edi, edi
ja 0x180e05fa
jb 0x180e0629
test ebx, ebx
jne 0x180e05fa
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
mov eax, edx
mov edi, dword [esp + 0x1c]
sub eax, esi
lea ecx, [ebx - 1]
add ecx, eax
cmp ecx, edi
jge 0x180e0651
mov eax, edi
sub eax, ecx
mov ecx, edi
dec esi
mov byte [esi], 0x30
sub eax, 1
jne 0x180e0648
cmp byte [esp + 0x1b], 0
je 0x180e0695
lea eax, [ecx - 1]
push 3
pop ecx
cdq
idiv ecx
xor ecx, ecx
mov edi, eax
inc edx
sub esi, edi
test edi, edi
jle 0x180e0691
mov bl, byte [esp + 0x1b]
lea eax, [edi + ecx]
mov al, byte [eax + esi]
mov byte [ecx + esi], al
sub edx, 1
jne 0x180e0688
inc ecx
dec edi
push 3
pop eax
mov edx, eax
mov byte [ecx + esi], bl
inc ecx
test edi, edi
jg 0x180e0670
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
mov al, byte [esp + 0x11]
test al, al
je 0x180e06a0
dec esi
mov byte [esi], al
cmp byte [esp + 0x10], 0
je 0x180e06c6
mov eax, dword [esp + 0x34]
mov al, byte [eax + 5]
test al, al
je 0x180e06c6
movzx eax, al
add eax, 0x181cfcb0
jmp 0x180e06c0
dec esi
inc eax
mov byte [esi], cl
mov cl, byte [eax]
test cl, cl
jne 0x180e06bc
sub edx, esi
dec edx
add ebx, edx
mov edx, dword [esp + 0x20]
mov al, byte [esp + 0xf]
sub edx, ebx
mov dword [esp + 0x20], edx
test edx, edx
jle 0x180e10b9
test al, al
jne 0x180e06f0
push ecx
mov ecx, dword [esp + 0x30]
call fcn.180e1240
pop ecx
push ebx
mov ebx, dword [esp + 0x30]
mov edx, esi
mov ecx, ebx
call fcn.180e12ad
cmp byte [esp + 0x13], 0
pop ecx
je 0x180e10c8
mov edx, dword [esp + 0x20]
push ecx
mov ecx, ebx
call fcn.180e1240
jmp 0x180e10c7
cmp byte [esp + 0x12], 0
je 0x180e074a
mov ebx, dword [esp + 0x38]
mov edx, dword [ebx + 4]
cmp dword [ebx], edx
jg 0x180e0733
fld qword [esp + 0x68]
jmp 0x180e0758
mov eax, dword [ebx + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [ebx + 4], eax
call fcn.180f6a81
mov ch, byte [esp + 0x13]
jmp 0x180e0758
mov eax, dword [esp + 0x14]
add eax, 8
mov dword [esp + 0x14], eax
fld qword [eax - 8]
mov edx, dword [esp + 0x1c]
fst qword [esp + 0x50]
fst qword [esp + 0x58]
test edx, edx
jns 0x180e076f
push 6
pop edx
mov dword [esp + 0x1c], edx
fld qword [esp + 0x68]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x180e078e
fchs
mov cl, 0x2d
fst qword [esp + 0x50]
fst qword [esp + 0x58]
mov byte [esp + 0x11], cl
jmp 0x180e0792
mov cl, byte [esp + 0x11]
cmp ch, 3
jne 0x180e07a0
test edx, edx
je 0x180e07a0
dec edx
mov dword [esp + 0x1c], edx
fld qword [esp + 0x88]
mov eax, edx
fst qword [esp + 0x60]
and eax, 0xfff
jbe 0x180e07c8
fld qword [esp + 0x80]
dec eax
fmul st(1), st(0)
test eax, eax
jg 0x180e07bb
fstp st(0)
fst qword [esp + 0x60]
cmp ch, 1
jne 0x180e07d9
faddp st(1)
fst qword [esp + 0x50]
fst qword [esp + 0x58]
jmp 0x180e07db
fstp st(0)
push ecx
push ecx
xor edi, edi
fstp qword [esp]
mov dword [esp + 0x38], edi
call fcn.180e1e77
add esp, 8
test eax, eax
je 0x180e0801
push 3
pop eax
mov esi, 0x181fc870
mov ebx, eax
jmp 0x180e06cb
fld qword [esp + 0x50]
fld qword [esp + 0x68]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x180e0989
fld qword [esp + 0x70]
mov ebx, 0x15e
fld st(0)
fld qword [esp + 0x90]
fcom st(3)
fnstsw ax
test ah, 0x41
jp 0x180e0851
push 0x64
pop edx
cmp edi, ebx
jg 0x180e0849
fmul st(1), st(0)
add edi, edx
fld st(1)
fmul st(1)
fcomp st(4)
fnstsw ax
test ah, 0x41
jnp 0x180e0834
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x30], edi
fstp st(0)
fld st(0)
fld qword [esp + 0x98]
fmul st(1), st(0)
fxch st(4)
fcom st(1)
fnstsw ax
test ah, 1
jne 0x180e089d
push 0xa
pop edx
jmp 0x180e0872
fxch st(1)
fxch st(2)
cmp edi, ebx
jg 0x180e0897
fstp st(2)
add edi, edx
fld st(0)
fmul st(4)
fcom st(2)
fnstsw ax
test ah, 0x41
jnp 0x180e086e
fstp st(0)
fstp st(3)
fxch st(2)
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x30], edi
jmp 0x180e08a1
fstp st(1)
fstp st(3)
jmp 0x180e088d
fstp st(1)
fstp st(3)
fld st(0)
fld qword [esp + 0x78]
fmul st(1), st(0)
fxch st(4)
fcom st(1)
fnstsw ax
test ah, 1
je 0x180e08e3
fstp st(1)
fdivrp st(1)
fst qword [esp + 0x58]
fld st(0)
fld qword [esp + 0xa0]
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x180e0985
fstp st(1)
fstp st(2)
fld qword [esp + 0xa8]
jmp 0x180e0907
fxch st(1)
fxch st(2)
cmp edi, ebx
jg 0x180e0901
fstp st(2)
inc edi
fld st(0)
fmul st(4)
fcom st(2)
fnstsw ax
test ah, 0x41
jnp 0x180e08df
fstp st(0)
fxch st(1)
mov dword [esp + 0x30], edi
jmp 0x180e08b6
fstp st(1)
jmp 0x180e08fb
fstp st(2)
fmul st(1), st(0)
sub edi, 8
fld st(1)
fxch st(2)
fst qword [esp + 0x58]
fcom st(3)
fnstsw ax
test ah, 5
jnp 0x180e0905
fstp st(3)
mov dword [esp + 0x30], edi
fstp st(0)
fld qword [esp + 0x70]
fxch st(2)
fxch st(1)
fcomp st(2)
fnstsw ax
test ah, 5
jp 0x180e094a
fmul st(2)
dec edi
fst qword [esp + 0x58]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x180e0936
mov dword [esp + 0x30], edi
fstp st(1)
cmp edi, ebx
jle 0x180e098f
xor ebx, ebx
mov byte [esp + 0xb0], cl
test cl, cl
lea esi, [esp + 0xb0]
push 4
setne bl
mov eax, esi
add eax, ebx
fstp st(0)
push 0x181fc874
push eax
fstp st(0)
call fcn.18161b60
add esp, 0xc
add ebx, 3
jmp 0x180e06cb
fstp st(0)
jmp 0x180e092d
fld qword [esp + 0x78]
fxch st(1)
lea ebx, [esp + 0xb0]
cmp ch, 1
je 0x180e09c0
fadd qword [esp + 0x60]
fst qword [esp + 0x58]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 1
jne 0x180e09c2
fmul qword [esp + 0x80]
inc edi
mov dword [esp + 0x30], edi
fstp qword [esp + 0x58]
jmp 0x180e09c4
fstp st(0)
fstp st(0)
mov dword [esp + 0x50], edi
cmp ch, 3
jne 0x180e0a00
cmp byte [esp + 0x10], 0
sete byte [esp + 0x1b]
cmp edi, 0xfffffffc
jl 0x180e09f9
cmp edi, edx
jg 0x180e09f9
sub edx, edi
mov byte [esp + 0x13], 1
mov dword [esp + 0x1c], edx
mov ecx, edi
mov dword [esp + 0x24], ecx
test edi, edi
jle 0x180e0a13
mov esi, edi
jmp 0x180e0a15
mov byte [esp + 0x13], 2
jmp 0x180e0a0d
mov al, byte [esp + 0x1a]
mov byte [esp + 0x1b], al
cmp ch, 2
jne 0x180e09eb
xor ecx, ecx
mov dword [esp + 0x24], ecx
xor esi, esi
mov eax, edx
cdq
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x44], edx
cdq
mov dword [esp + 0x4c], eax
mov eax, esi
mov esi, dword [esp + 0x60]
mov dword [esp + 0x40], edx
cdq
add eax, dword [esp + 0x4c]
adc edx, dword [esp + 0x40]
add eax, esi
adc edx, dword [esp + 0x44]
mov dword [esp + 0x64], edx
js 0x180e0a83
jg 0x180e0a4f
cmp eax, 0x37
jbe 0x180e0a83
test ecx, ecx
jg 0x180e0a55
xor ecx, ecx
mov eax, ecx
cdq
add eax, dword [esp + 0x4c]
adc edx, dword [esp + 0x40]
add eax, esi
adc edx, dword [esp + 0x44]
add eax, 0xf
adc edx, 0
push edx
push eax
call fcn.180dfa31
mov dword [esp + 0x50], eax
mov ebx, eax
pop ecx
pop ecx
test eax, eax
je 0x180e0fae
mov cl, byte [esp + 0x1a]
mov esi, ebx
mov edx, dword [esp + 0x1c]
movzx eax, cl
imul eax, eax, 0xa
add eax, 0x10
test edx, edx
mov dword [esp + 0x44], eax
setg al
or al, cl
or byte [esp + 0x10], al
mov al, byte [esp + 0x11]
test al, al
je 0x180e0ab0
mov byte [ebx], al
inc ebx
mov eax, dword [esp + 0x24]
test eax, eax
jns 0x180e0abe
mov byte [ebx], 0x30
inc ebx
jmp 0x180e0ae7
mov edi, dword [esp + 0x24]
lea edx, [esp + 0x44]
lea ecx, [esp + 0x58]
call fcn.180e00e0
mov byte [ebx], al
inc ebx
sub edi, 1
jns 0x180e0ac2
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
cmp byte [esp + 0x10], 0
je 0x180e0af2
mov byte [ebx], 0x2e
inc ebx
add eax, 1
jns 0x180e0b19
neg eax
push eax
push 0x30
push ebx
mov dword [esp + 0x30], eax
call fcn.181620e0
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov edx, dword [esp + 0x1c]
add ebx, ecx
sub edx, ecx
mov dword [esp + 0x1c], edx
test edx, edx
jle 0x180e0b3a
mov edi, dword [esp + 0x1c]
lea edx, [esp + 0x44]
dec edi
lea ecx, [esp + 0x58]
call fcn.180e00e0
mov byte [ebx], al
inc ebx
test edi, edi
jg 0x180e0b21
mov edi, dword [esp + 0x30]
cmp byte [esp + 0x1b], 0
je 0x180e0b6e
cmp byte [esp + 0x10], 0
je 0x180e0b6e
jmp 0x180e0b4f
mov ebx, eax
mov byte [ebx], 0
lea eax, [ebx - 1]
cmp byte [eax], 0x30
je 0x180e0b4a
cmp byte [ebx - 1], 0x2e
jne 0x180e0b6e
cmp byte [esp + 0x1a], 0
je 0x180e0b6a
mov byte [ebx], 0x30
inc ebx
jmp 0x180e0b6e
dec ebx
mov byte [ebx], 0
cmp byte [esp + 0x13], 2
jne 0x180e0bca
mov eax, dword [esp + 0x34]
movzx eax, byte [eax + 4]
mov al, byte [eax + 0x181cfeb0]
mov byte [ebx], al
lea eax, [ebx + 1]
add ebx, 2
test edi, edi
jns 0x180e0b91
neg edi
cmp dword [esp + 0x50], 0
push 0x64
setl cl
lea ecx, [ecx*2 + 0x2b]
mov byte [eax], cl
pop ecx
cmp edi, ecx
jl 0x180e0bb5
mov eax, edi
cdq
idiv ecx
add al, 0x30
mov edi, edx
mov byte [ebx], al
inc ebx
mov eax, edi
push 0xa
cdq
pop ecx
idiv ecx
add al, 0x30
add dl, 0x30
mov byte [ebx], al
mov byte [ebx + 1], dl
add ebx, 2
mov al, byte [esp + 0xf]
mov edx, dword [esp + 0x20]
mov byte [ebx], 0
sub ebx, esi
cmp byte [esp + 0x2b], 0
je 0x180e06d3
test al, al
jne 0x180e06d3
cmp ebx, edx
jge 0x180e06d3
mov ecx, edx
sub ecx, ebx
cmp edx, ecx
jl 0x180e0c09
mov edi, esi
sub edi, ecx
mov al, byte [edi + edx]
mov byte [edx + esi], al
dec edx
cmp edx, ecx
jge 0x180e0bfe
xor eax, eax
cmp byte [esp + 0x11], al
setne al
test ecx, ecx
je 0x180e0c24
push ecx
add eax, esi
push 0x30
push eax
call fcn.181620e0
add esp, 0xc
mov edx, dword [esp + 0x20]
mov ebx, edx
jmp 0x180e06cf
cmp byte [esp + 0x12], 0
jne 0x180e10b7
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
mov ecx, dword [eax - 4]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
mov dword [ecx], eax
jmp 0x180e10b7
xor ebx, ebx
mov byte [esp + 0xb0], 0x25
lea esi, [esp + 0xb0]
inc ebx
jmp 0x180e06cb
cmp byte [esp + 0x12], 0
je 0x180e0cd0
mov ecx, dword [esp + 0x38]
call fcn.180e013a
xor ebx, ebx
mov edx, eax
inc ebx
test edx, edx
je 0x180e0cc3
mov cl, byte [edx]
inc edx
mov byte [esp + 0xb0], cl
movsx ecx, cl
and ecx, 0xc0
cmp cl, 0xc0
jne 0x180e0d92
mov cl, byte [edx]
mov al, cl
and al, 0xc0
cmp al, 0x80
jne 0x180e0d92
mov byte [esp + ebx + 0xb0], cl
inc ebx
inc edx
cmp ebx, 4
jl 0x180e0ca2
jmp 0x180e0d92
mov byte [esp + 0xb0], 0
jmp 0x180e0d92
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
mov ecx, dword [eax - 4]
cmp ecx, 0x80
jae 0x180e0cf5
xor ebx, ebx
mov byte [esp + 0xb0], cl
inc ebx
jmp 0x180e0d92
mov eax, ecx
cmp ecx, 0x800
jae 0x180e0d1e
shr eax, 6
and cl, 0x3f
and al, 0x1f
sub al, 0x40
add cl, 0x80
mov byte [esp + 0xb0], al
mov byte [esp + 0xb1], cl
push 2
jmp 0x180e0d91
push 0x3f
mov dl, cl
pop ebx
and dl, bl
add dl, 0x80
cmp ecx, 0x10000
jae 0x180e0d5b
shr eax, 0xc
and al, 0xf
shr ecx, 6
sub al, 0x20
mov byte [esp + 0xb2], dl
and cl, bl
mov byte [esp + 0xb0], al
push 3
add cl, 0x80
pop eax
mov byte [esp + 0xb1], cl
mov ebx, eax
jmp 0x180e0d92
shr eax, 0x12
and al, 7
mov byte [esp + 0xb3], dl
sub al, 0x10
mov byte [esp + 0xb0], al
mov eax, ecx
shr eax, 0xc
shr ecx, 6
and al, bl
add al, 0x80
and cl, bl
add cl, 0x80
mov byte [esp + 0xb1], al
mov byte [esp + 0xb2], cl
push 4
pop ebx
mov esi, dword [esp + 0x1c]
cmp esi, 1
jle 0x180e0ddc
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x2c]
sub eax, esi
mov edx, eax
inc eax
mov dword [esp + 0x20], eax
cmp eax, 1
jle 0x180e0dc6
cmp byte [esp + 0xf], 0
jne 0x180e0dc6
push ecx
mov ecx, edi
call fcn.180e1240
and dword [esp + 0x24], 0
pop ecx
dec esi
push ebx
lea edx, [esp + 0xb4]
mov ecx, edi
call fcn.180e12ad
pop ecx
sub esi, 1
jne 0x180e0dc7
lea esi, [esp + 0xb0]
jmp 0x180e100d
cmp byte [esp + 0x12], 0
je 0x180e0dfe
mov ecx, dword [esp + 0x38]
call fcn.180e013a
mov esi, eax
mov ch, 5
jmp 0x180e0e0c
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
mov esi, dword [eax - 4]
test esi, esi
jne 0x180e0e17
mov esi, 0x181dc774
jmp 0x180e0e67
cmp ch, 6
jne 0x180e0e67
mov ebx, dword [esp + 0x2c]
cmp dword [ebx + 0x10], 0
jne 0x180e0e63
cmp dword [ebx + 0xc], 0
je 0x180e0e63
cmp dword [esp + 0x20], 0
jne 0x180e0e63
cmp dword [esp + 0x1c], 0
jge 0x180e0e63
mov ecx, dword [ebx]
mov edx, esi
mov dword [ebx + 4], esi
call fcn.180dfafe
push esi
mov dword [ebx + 8], eax
call fcn.1816ad40
or byte [ebx + 0x15], 4
and eax, 0x7fffffff
mov dword [ebx + 0x10], eax
xor ebx, ebx
pop ecx
jmp 0x180e06cb
mov dword [esp + 0x48], esi
mov ecx, dword [esp + 0x1c]
test ecx, ecx
js 0x180e0eba
cmp byte [esp + 0x1a], 0
je 0x180e0e9c
mov ebx, esi
jmp 0x180e0e91
mov al, byte [ebx]
dec ecx
test al, al
je 0x180e0e95
inc ebx
cmp al, 0xc0
jb 0x180e0e91
jmp 0x180e0e89
inc ebx
mov al, byte [ebx]
and al, 0xc0
cmp al, 0x80
je 0x180e0e88
test ecx, ecx
jg 0x180e0e7a
sub ebx, esi
jmp 0x180e100d
xor ebx, ebx
test ecx, ecx
jle 0x180e06cb
cmp byte [ebx + esi], 0
je 0x180e06cb
inc ebx
cmp ebx, ecx
jl 0x180e0ea6
jmp 0x180e1002
push esi
call fcn.1816ad40
mov ebx, eax
pop ecx
and ebx, 0x7fffffff
jmp 0x180e1002
cmp ch, 0xe
setne cl
dec cl
and cl, 0xfb
add cl, 0x27
cmp byte [esp + 0x12], 0
mov byte [esp + 0x10], cl
je 0x180e0f00
mov ecx, dword [esp + 0x38]
call fcn.180e013a
mov cl, byte [esp + 0x10]
mov edx, eax
mov ch, byte [esp + 0x13]
mov dword [esp + 0x34], eax
jmp 0x180e0f12
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
mov edx, dword [eax - 4]
mov dword [esp + 0x34], edx
mov ebx, edx
mov dword [esp + 0x50], ebx
test edx, edx
jne 0x180e0f2f
mov edx, str.NULL
cmp ch, 0xa
je 0x180e0f2b
mov edx, str._NULL_
mov dword [esp + 0x34], edx
xor esi, esi
xor edi, edi
cmp dword [esp + 0x1c], esi
je 0x180e0f76
mov ebx, dword [esp + 0x1c]
mov ah, byte [esp + 0x1a]
mov al, byte [edi + edx]
test al, al
je 0x180e0f72
cmp al, cl
jne 0x180e0f4d
inc esi
test ah, ah
je 0x180e0f6c
and al, 0xc0
cmp al, 0xc0
jne 0x180e0f6c
lea ecx, [edx + 1]
add ecx, edi
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x180e0f68
inc edi
inc ecx
jmp 0x180e0f5c
mov cl, byte [esp + 0x10]
inc edi
sub ebx, 1
jne 0x180e0f41
mov ebx, dword [esp + 0x50]
test ebx, ebx
je 0x180e0f8b
cmp byte [esp + 0x13], 0xa
jne 0x180e0f8b
mov dword [esp + 0x24], 1
jmp 0x180e0f90
and dword [esp + 0x24], 0
lea eax, [edi + 3]
add eax, esi
cmp eax, 0x46
jle 0x180e0fbf
cdq
push edx
push eax
call fcn.180dfa31
mov dword [esp + 0x50], eax
mov esi, eax
pop ecx
pop ecx
test eax, eax
jne 0x180e0fc6
mov eax, dword [esp + 0x2c]
and dword [eax + 8], 0
mov byte [eax + 0x14], 1
jmp case.default.0x180e043b
lea esi, [esp + 0xb0]
mov dl, byte [esp + 0x10]
xor ebx, ebx
cmp dword [esp + 0x24], ebx
je 0x180e0fd5
mov byte [esi], dl
inc ebx
xor eax, eax
test edi, edi
jle 0x180e0ff3
mov ecx, dword [esp + 0x34]
mov cl, byte [eax + ecx]
mov byte [ebx + esi], cl
inc ebx
cmp cl, dl
jne 0x180e0fee
mov byte [ebx + esi], cl
inc ebx
inc eax
cmp eax, edi
jl 0x180e0fdb
cmp dword [esp + 0x24], 0
je 0x180e0ffe
mov byte [ebx + esi], dl
inc ebx
mov byte [ebx + esi], 0
cmp byte [esp + 0x1a], 0
je 0x180e06cb
mov edx, dword [esp + 0x20]
test edx, edx
jle 0x180e06cf
lea ecx, [ebx - 1]
jmp 0x180e1029
mov al, byte [ecx + esi]
and al, 0xc0
dec ecx
cmp al, 0x80
jne 0x180e1029
inc edx
test ecx, ecx
jns 0x180e101e
jmp 0x180e06cf
mov ecx, dword [esp + 0x2c]
test byte [ecx + 0x15], 1
je case.default.0x180e043b
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
mov edx, dword [eax - 4]
test edx, edx
je 0x180e10b7
cmp dword [edx + 4], 0
je 0x180e10b7
push dword [edx + 4]
mov edx, dword [edx]
call fcn.180e12ad
pop ecx
jmp 0x180e10b7
mov ecx, dword [esp + 0x2c]
test byte [ecx + 0x15], 1
je case.default.0x180e043b
mov eax, dword [esp + 0x14]
lea edi, [eax + 8]
mov eax, dword [eax]
imul ebx, dword [edi - 4], 0x50
mov dword [esp + 0x50], eax
mov edx, dword [ebx + eax + 0xc]
test edx, edx
je 0x180e10aa
call fcn.180e12ea
mov ecx, dword [esp + 0x2c]
mov edx, 0x181e0b40
push 1
call fcn.180e12ad
mov eax, dword [esp + 0x54]
pop ecx
mov ecx, dword [esp + 0x2c]
mov edx, dword [ebx + eax + 0x10]
call fcn.180e12ea
mov dword [esp + 0x14], edi
xor ebx, ebx
push ebx
mov ebx, dword [esp + 0x30]
mov edx, esi
mov ecx, ebx
call fcn.180e12ad
pop ecx
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x180e10df
mov edx, ecx
mov ecx, dword [ebx]
call fcn.180dfba4
xor ecx, ecx
mov dword [esp + 0x48], ecx
mov edi, dword [esp + 0x3c]
inc edi
movsx eax, byte [edi]
test eax, eax
je case.default.0x180e043b
jmp 0x180e0221
push 1
mov edx, 0x181fc86c
mov ecx, ebx
call fcn.180e12ad
pop ecx
mov ecx, dword [esp + 0xfc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1814cf3d
mov esp, ebp
pop ebp
ret