Function at 0x18153470
Capabilities:
Enumerate pe sections

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xb2c
mov eax, dword [0x181c7008]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0xc]
xor eax, eax
mov edx, dword [ebp + 8]
push ebx
push esi
cmp byte [ecx + 4], al
mov ebx, dword [edx]
sete al
mov dword [ebp - 0x94c], edx
dec eax
mov dword [ebp - 0x954], ecx
and eax, 0x1d
add eax, 0x19
mov dword [ebp - 0x950], eax
push edi
test ebx, ebx
jns 0x181534b7
xor ebx, ebx
mov eax, dword [edx + 4]
mov ecx, ebx
cmp ebx, eax
jb 0x181534c2
mov ecx, eax
sub ebx, ecx
lea edi, [edx + 8]
add eax, 8
mov dword [ebp - 0x93c], ebx
add eax, edx
mov dword [ebp - 0x940], edi
lea ebx, [edx + 8]
mov dword [ebp - 0x958], eax
add ebx, ecx
xor esi, esi
sub eax, ebx
mov dword [ebp - 0x95c], ebx
mov dword [ebp - 0x91c], eax
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x920], esi
mov dword [ebp - 0x918], eax
mov dword [ebp - 0x1d4], eax
cmp edi, ebx
jne 0x18153614
mov ebx, eax
mov eax, dword [ebp - 0x93c]
test eax, eax
je 0x18153f9e
push 0xa
xor edx, edx
pop ecx
div ecx
mov dword [ebp - 0x920], eax
mov ecx, edx
mov dword [ebp - 0x928], ecx
test eax, eax
je 0x18153f55
cmp eax, 0x26
jbe 0x18153546
push 0x26
pop eax
movzx ecx, byte [eax*4 + 0x18175646]
movzx esi, byte [eax*4 + 0x18175647]
mov edi, ecx
mov dword [ebp - 0x934], eax
shl edi, 2
push edi
lea eax, [ecx + esi]
mov dword [ebp - 0x914], eax
lea eax, [ebp - 0x910]
push 0
push eax
call fcn.18144340
mov eax, esi
shl eax, 2
push eax
mov eax, dword [ebp - 0x934]
movzx eax, word [eax*4 + 0x18175644]
lea eax, [eax*4 + 0x18174d40]
push eax
lea eax, [ebp - 0x910]
add eax, edi
push eax
call fcn.18144bc0
mov ecx, dword [ebp - 0x914]
xor eax, eax
inc eax
mov dword [ebp - 0x92c], ecx
add esp, 0x18
cmp ecx, eax
ja 0x18153cca
mov edi, dword [ebp - 0x910]
test edi, edi
jne 0x18153c7c
xor eax, eax
push eax
mov dword [ebp - 0xb2c], eax
mov dword [ebp - 0x1d4], eax
lea eax, [ebp - 0xb28]
push eax
push 0x1cc
lea eax, [ebp - 0x1d0]
push eax
call fcn.181556ef
add esp, 0x10
mov ebx, dword [ebp - 0x1d4]
mov al, 1
mov dword [ebp - 0x918], ebx
mov ebx, dword [ebp - 0x918]
jmp 0x18153f2f
mov eax, dword [ebp - 0x918]
cmp ecx, 9
jne 0x18153754
test eax, eax
je 0x181536b8
mov ebx, dword [ebp - 0x918]
xor ecx, ecx
xor esi, esi
mov edi, 0x3b9aca00
mov eax, dword [ebp + esi*4 - 0x1d0]
mul edi
add eax, ecx
mov dword [ebp + esi*4 - 0x1d0], eax
adc edx, 0
inc esi
mov ecx, edx
cmp esi, ebx
jne 0x18153634
mov edi, dword [ebp - 0x940]
mov eax, dword [ebp - 0x1d4]
test ecx, ecx
je 0x181536ac
cmp eax, 0x73
jae 0x1815367b
mov dword [ebp + eax*4 - 0x1d0], ecx
mov eax, dword [ebp - 0x1d4]
inc eax
mov dword [ebp - 0x1d4], eax
jmp 0x181536ac
and dword [ebp - 0x914], 0
lea eax, [ebp - 0x910]
and dword [ebp - 0x1d4], 0
push 0
push eax
lea eax, [ebp - 0x1d0]
push 0x1cc
push eax
call fcn.181556ef
mov eax, dword [ebp - 0x1d4]
add esp, 0x10
mov esi, dword [ebp - 0x920]
mov dword [ebp - 0x918], eax
test esi, esi
je 0x18153744
xor edx, edx
test eax, eax
je 0x181536ea
xor eax, eax
add dword [ebp + edx*4 - 0x1d0], esi
adc eax, eax
inc edx
mov esi, eax
mov eax, dword [ebp - 0x1d4]
mov dword [ebp - 0x918], eax
mov ecx, esi
cmp edx, eax
jne 0x181536c6
test ecx, ecx
je 0x1815374c
cmp eax, 0x73
jae 0x1815370b
mov dword [ebp + eax*4 - 0x1d0], esi
mov ebx, dword [ebp - 0x1d4]
inc ebx
mov dword [ebp - 0x918], ebx
mov dword [ebp - 0x1d4], ebx
jmp 0x1815374e
and dword [ebp - 0x914], 0
lea eax, [ebp - 0x910]
and dword [ebp - 0x1d4], 0
push 0
push eax
lea eax, [ebp - 0x1d0]
push 0x1cc
push eax
call fcn.181556ef
mov ebx, dword [ebp - 0x1d4]
add esp, 0x10
mov dword [ebp - 0x918], ebx
jmp 0x1815374e
mov ebx, dword [ebp - 0x918]
jmp 0x1815374e
mov ebx, eax
xor esi, esi
xor ecx, ecx
jmp 0x1815375a
mov ebx, dword [ebp - 0x918]
movzx eax, byte [edi]
imul esi, esi, 0xa
add esi, eax
inc ecx
inc edi
mov dword [ebp - 0x920], esi
mov dword [ebp - 0x940], edi
cmp edi, dword [ebp - 0x95c]
jne 0x1815360e
test ecx, ecx
je 0x18153c71
mov eax, ecx
xor edx, edx
push 0xa
pop ecx
div ecx
mov dword [ebp - 0x924], eax
mov ecx, edx
mov dword [ebp - 0x928], ecx
test eax, eax
je 0x18153b10
cmp eax, 0x26
jbe 0x181537ab
push 0x26
pop eax
movzx ecx, byte [eax*4 + 0x18175646]
movzx esi, byte [eax*4 + 0x18175647]
mov edi, ecx
mov dword [ebp - 0x930], eax
shl edi, 2
push edi
lea eax, [ecx + esi]
mov dword [ebp - 0x914], eax
lea eax, [ebp - 0x910]
push 0
push eax
call fcn.18144340
mov eax, esi
shl eax, 2
push eax
mov eax, dword [ebp - 0x930]
movzx eax, word [eax*4 + 0x18175644]
lea eax, [eax*4 + 0x18174d40]
push eax
lea eax, [ebp - 0x910]
add eax, edi
push eax
call fcn.18144bc0
mov ecx, dword [ebp - 0x914]
xor eax, eax
inc eax
mov dword [ebp - 0x938], ecx
add esp, 0x18
cmp ecx, eax
ja 0x181538cf
mov esi, dword [ebp - 0x910]
test esi, esi
jne 0x1815383f
xor eax, eax
mov dword [ebp - 0x744], eax
mov dword [ebp - 0x1d4], eax
jmp 0x18153ac4
cmp esi, eax
je 0x18153aee
test ebx, ebx
je 0x18153aee
xor ecx, ecx
xor edi, edi
mov eax, esi
mul dword [ebp + edi*4 - 0x1d0]
add eax, ecx
mov dword [ebp + edi*4 - 0x1d0], eax
adc edx, 0
inc edi
mov ecx, edx
cmp edi, ebx
jne 0x18153853
test ecx, ecx
je 0x181538c2
mov eax, dword [ebp - 0x1d4]
cmp eax, 0x73
jae 0x18153894
mov dword [ebp + eax*4 - 0x1d0], ecx
mov ebx, dword [ebp - 0x1d4]
inc ebx
mov dword [ebp - 0x1d4], ebx
jmp 0x181538c8
xor ebx, ebx
lea eax, [ebp - 0x910]
mov dword [ebp - 0x914], ebx
push ebx
push eax
lea eax, [ebp - 0x1d0]
mov dword [ebp - 0x1d4], ebx
push 0x1cc
push eax
call fcn.181556ef
mov al, bl
jmp 0x18153adf
mov ebx, dword [ebp - 0x1d4]
mov al, 1
jmp 0x18153ae8
cmp ebx, eax
ja 0x18153967
mov edi, dword [ebp - 0x1d0]
mov eax, ecx
shl eax, 2
mov ebx, 0x1cc
push eax
lea eax, [ebp - 0x910]
mov dword [ebp - 0x1d4], ecx
push eax
lea eax, [ebp - 0x1d0]
push ebx
push eax
call fcn.181556ef
add esp, 0x10
xor eax, eax
test edi, edi
jne 0x18153925
push eax
mov dword [ebp - 0x914], eax
mov dword [ebp - 0x1d4], eax
lea eax, [ebp - 0x910]
push eax
push ebx
jmp 0x18153ad1
mov ebx, dword [ebp - 0x1d4]
inc eax
mov dword [ebp - 0x918], ebx
cmp edi, eax
je 0x18153aee
test ebx, ebx
je 0x18153aee
xor ecx, ecx
xor esi, esi
mov eax, edi
mul dword [ebp + esi*4 - 0x1d0]
add eax, ecx
mov dword [ebp + esi*4 - 0x1d0], eax
adc edx, 0
inc esi
mov ecx, edx
cmp esi, ebx
jne 0x18153946
jmp 0x1815386f
cmp ecx, ebx
lea edx, [ebp - 0x910]
setb al
jb 0x1815397a
lea edx, [ebp - 0x1d0]
mov dword [ebp - 0x92c], edx
test al, al
je 0x18153998
mov dword [ebp - 0x934], ebx
lea ebx, [ebp - 0x1d0]
mov dword [ebp - 0x940], ebx
jmp 0x181539b2
mov dword [ebp - 0x934], ecx
lea eax, [ebp - 0x910]
mov ecx, ebx
mov dword [ebp - 0x940], eax
mov dword [ebp - 0x938], ecx
xor eax, eax
xor edi, edi
mov dword [ebp - 0x744], eax
test ecx, ecx
je 0x18153abb
cmp dword [edx + edi*4], 0
jne 0x181539e8
cmp edi, eax
jne 0x18153ab2
and dword [ebp + edi*4 - 0x740], 0
lea eax, [edi + 1]
mov dword [ebp - 0x744], eax
jmp 0x18153ab2
xor edx, edx
xor ebx, ebx
mov esi, edi
mov dword [ebp - 0x918], edx
cmp dword [ebp - 0x934], edx
je 0x18153aa3
cmp esi, 0x73
je 0x18153a57
cmp esi, eax
jne 0x18153a1c
and dword [ebp + esi*4 - 0x740], 0
lea eax, [edi + 1]
add eax, ebx
mov dword [ebp - 0x744], eax
mov eax, dword [ebp - 0x940]
mov edx, dword [ebp - 0x92c]
mov eax, dword [eax + ebx*4]
mul dword [edx + edi*4]
add eax, dword [ebp - 0x918]
adc edx, 0
add dword [ebp + esi*4 - 0x740], eax
mov eax, dword [ebp - 0x744]
adc edx, 0
inc ebx
inc esi
mov dword [ebp - 0x918], edx
cmp ebx, dword [ebp - 0x934]
jne 0x18153a00
test edx, edx
je 0x18153aa3
lea ebx, [ebp - 0x740]
lea ebx, [ebx + esi*4]
cmp esi, 0x73
je 0x18153a9d
cmp esi, eax
jne 0x18153a79
and dword [ebx], 0
lea eax, [esi + 1]
mov dword [ebp - 0x744], eax
mov edx, ebx
xor eax, eax
inc esi
add ebx, 4
mov ecx, dword [edx]
add ecx, dword [ebp - 0x918]
mov dword [edx], ecx
adc eax, eax
mov dword [ebp - 0x918], eax
test eax, eax
mov eax, dword [ebp - 0x744]
jne 0x18153a64
mov ecx, dword [ebp - 0x938]
cmp esi, 0x73
je 0x18153b5c
mov edx, dword [ebp - 0x92c]
inc edi
cmp edi, ecx
jne 0x181539c4
mov dword [ebp - 0x1d4], eax
shl eax, 2
push eax
lea eax, [ebp - 0x740]
push eax
push 0x1cc
lea eax, [ebp - 0x1d0]
push eax
call fcn.181556ef
mov al, 1
mov ebx, dword [ebp - 0x1d4]
add esp, 0x10
mov dword [ebp - 0x918], ebx
test al, al
je 0x18153b23
mov eax, dword [ebp - 0x924]
sub eax, dword [ebp - 0x930]
mov dword [ebp - 0x924], eax
jne 0x181537a3
mov ecx, dword [ebp - 0x928]
test ecx, ecx
je 0x18153bcf
mov edi, dword [ecx*4 + 0x181756dc]
test edi, edi
jne 0x18153b6f
and dword [ebp - 0xb2c], 0
lea eax, [ebp - 0xb28]
and dword [ebp - 0x1d4], 0
push 0
push eax
lea eax, [ebp - 0x1d0]
push 0x1cc
push eax
call fcn.181556ef
mov eax, dword [ebp - 0x1d4]
add esp, 0x10
mov dword [ebp - 0x918], eax
jmp 0x18153bd5
xor ebx, ebx
lea eax, [ebp - 0xb28]
mov dword [ebp - 0xb2c], ebx
jmp 0x181538a2
mov eax, dword [ebp - 0x918]
cmp edi, 1
je 0x18153bd5
test eax, eax
je 0x18153bd5
xor ecx, ecx
mov ebx, eax
xor esi, esi
mov eax, edi
mul dword [ebp + esi*4 - 0x1d0]
add eax, ecx
mov dword [ebp + esi*4 - 0x1d0], eax
adc edx, 0
inc esi
mov ecx, edx
cmp esi, ebx
jne 0x18153b84
mov eax, dword [ebp - 0x1d4]
test ecx, ecx
je 0x18153b54
cmp eax, 0x73
jae 0x18153b23
mov dword [ebp + eax*4 - 0x1d0], ecx
mov eax, dword [ebp - 0x1d4]
inc eax
mov dword [ebp - 0x918], eax
mov dword [ebp - 0x1d4], eax
jmp 0x18153bd5
mov eax, dword [ebp - 0x918]
mov esi, dword [ebp - 0x920]
test esi, esi
je 0x18153c71
xor edx, edx
test eax, eax
je 0x18153c11
xor eax, eax
add dword [ebp + edx*4 - 0x1d0], esi
adc eax, eax
inc edx
mov esi, eax
mov eax, dword [ebp - 0x1d4]
mov dword [ebp - 0x918], eax
mov ecx, esi
cmp edx, eax
jne 0x18153be9
test ecx, ecx
je 0x18153511
cmp eax, 0x73
jae 0x18153c35
mov dword [ebp + eax*4 - 0x1d0], esi
mov ebx, dword [ebp - 0x1d4]
inc ebx
mov dword [ebp - 0x918], ebx
mov dword [ebp - 0x1d4], ebx
jmp 0x18153513
and dword [ebp - 0xb2c], 0
lea eax, [ebp - 0xb28]
and dword [ebp - 0x1d4], 0
push 0
push eax
lea eax, [ebp - 0x1d0]
push 0x1cc
push eax
call fcn.181556ef
mov ebx, dword [ebp - 0x1d4]
add esp, 0x10
mov dword [ebp - 0x918], ebx
jmp 0x18153513
mov ebx, dword [ebp - 0x918]
jmp 0x18153513
cmp edi, eax
je 0x18153603
test ebx, ebx
je 0x18153603
xor ecx, ecx
xor esi, esi
mov eax, edi
mul dword [ebp + esi*4 - 0x1d0]
add eax, ecx
mov dword [ebp + esi*4 - 0x1d0], eax
adc edx, 0
inc esi
mov ecx, edx
cmp esi, ebx
jne 0x18153c90
jmp 0x18153d5d
mov dword [ebp + eax*4 - 0x1d0], ecx
mov ebx, dword [ebp - 0x1d4]
inc ebx
mov dword [ebp - 0x1d4], ebx
jmp 0x181535fb
cmp ebx, eax
ja 0x18153dab
mov edi, dword [ebp - 0x1d0]
mov eax, ecx
shl eax, 2
mov ebx, 0x1cc
push eax
lea eax, [ebp - 0x910]
mov dword [ebp - 0x1d4], ecx
push eax
lea eax, [ebp - 0x1d0]
push ebx
push eax
call fcn.181556ef
add esp, 0x10
xor eax, eax
test edi, edi
jne 0x18153d20
push eax
mov dword [ebp - 0xb2c], eax
mov dword [ebp - 0x1d4], eax
lea eax, [ebp - 0xb28]
push eax
push ebx
jmp 0x181535e6
mov ebx, dword [ebp - 0x1d4]
inc eax
mov dword [ebp - 0x918], ebx
cmp edi, eax
je 0x18153603
test ebx, ebx
je 0x18153603
xor ecx, ecx
xor esi, esi
mov eax, edi
mul dword [ebp + esi*4 - 0x1d0]
add eax, ecx
mov dword [ebp + esi*4 - 0x1d0], eax
adc edx, 0
inc esi
mov ecx, edx
cmp esi, ebx
jne 0x18153d41
test ecx, ecx
je 0x181535f5
mov eax, dword [ebp - 0x1d4]
cmp eax, 0x73
jb 0x18153cb1
xor ebx, ebx
lea eax, [ebp - 0xb28]
push ebx
push eax
lea eax, [ebp - 0x1d0]
mov dword [ebp - 0xb2c], ebx
push 0x1cc
push eax
mov dword [ebp - 0x1d4], ebx
call fcn.181556ef
mov al, bl
add esp, 0x10
mov ebx, dword [ebp - 0x1d4]
jmp 0x181535fd
cmp ecx, ebx
lea edx, [ebp - 0x910]
setb al
jb 0x18153dbe
lea edx, [ebp - 0x1d0]
mov dword [ebp - 0x938], edx
test al, al
je 0x18153ddc
mov dword [ebp - 0x930], ebx
lea ebx, [ebp - 0x1d0]
mov dword [ebp - 0x940], ebx
jmp 0x18153df6
mov dword [ebp - 0x930], ecx
lea eax, [ebp - 0x910]
mov ecx, ebx
mov dword [ebp - 0x940], eax
mov dword [ebp - 0x92c], ecx
xor eax, eax
xor edi, edi
mov dword [ebp - 0x744], eax
test ecx, ecx
je 0x18153efc
cmp dword [edx + edi*4], 0
jne 0x18153e2c
cmp edi, eax
jne 0x18153ef3
and dword [ebp + edi*4 - 0x740], 0
lea eax, [edi + 1]
mov dword [ebp - 0x744], eax
jmp 0x18153ef3
xor edx, edx
xor ebx, ebx
mov esi, edi
mov dword [ebp - 0x924], edx
cmp dword [ebp - 0x930], edx
je 0x18153ee4
cmp esi, 0x73
je 0x18153ea6
cmp esi, eax
jne 0x18153e60
and dword [ebp + esi*4 - 0x740], 0
lea eax, [edi + 1]
add eax, edx
mov dword [ebp - 0x744], eax
mov eax, dword [ebp - 0x940]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp - 0x938]
mul dword [edx + edi*4]
add eax, dword [ebp + esi*4 - 0x740]
adc edx, 0
add eax, ebx
mov dword [ebp + esi*4 - 0x740], eax
mov eax, dword [ebp - 0x744]
adc edx, 0
mov ebx, edx
mov edx, dword [ebp - 0x924]
inc edx
inc esi
mov dword [ebp - 0x924], edx
cmp edx, dword [ebp - 0x930]
jne 0x18153e44
test ebx, ebx
je 0x18153ee4
lea edx, [ebp - 0x740]
lea edx, [edx + esi*4]
cmp esi, 0x73
je 0x18153ede
cmp esi, eax
jne 0x18153ec8
and dword [edx], 0
lea eax, [esi + 1]
mov dword [ebp - 0x744], eax
mov ecx, edx
mov eax, ebx
inc esi
add edx, 4
xor ebx, ebx
add dword [ecx], eax
mov eax, dword [ebp - 0x744]
adc ebx, ebx
jne 0x18153eb3
mov ecx, dword [ebp - 0x92c]
cmp esi, 0x73
je 0x18153fad
mov edx, dword [ebp - 0x938]
inc edi
cmp edi, ecx
jne 0x18153e08
mov dword [ebp - 0x1d4], eax
shl eax, 2
push eax
lea eax, [ebp - 0x740]
push eax
lea eax, [ebp - 0x1d0]
push 0x1cc
push eax
call fcn.181556ef
add esp, 0x10
mov al, 1
mov ebx, dword [ebp - 0x1d4]
mov dword [ebp - 0x918], ebx
test al, al
je 0x18153fde
mov eax, dword [ebp - 0x920]
sub eax, dword [ebp - 0x934]
mov dword [ebp - 0x920], eax
jne 0x1815353e
mov ecx, dword [ebp - 0x928]
test ecx, ecx
je 0x18153f9e
mov edi, dword [ecx*4 + 0x181756dc]
test edi, edi
jne 0x18153ff0
xor eax, eax
push eax
mov dword [ebp - 0xb2c], eax
mov dword [ebp - 0x1d4], eax
lea eax, [ebp - 0xb28]
push eax
lea eax, [ebp - 0x1d0]
push 0x1cc
push eax
call fcn.181556ef
add esp, 0x10
mov ebx, dword [ebp - 0x1d4]
mov dword [ebp - 0x918], ebx
test ebx, ebx
jne 0x18154092
xor ecx, ecx
jmp 0x181540b2
xor eax, eax
push eax
mov dword [ebp - 0xb2c], eax
mov dword [ebp - 0x1d4], eax
lea eax, [ebp - 0xb28]
push eax
lea eax, [ebp - 0x1d0]
push 0x1cc
push eax
call fcn.181556ef
add esp, 0x10
xor al, al
jmp 0x18153f23
and dword [ebp - 0xb2c], 0
and dword [ebp - 0x1d4], 0
push 0
jmp 0x18154054
cmp edi, 1
je 0x18153f9e
test ebx, ebx
je 0x18153fa6
xor ecx, ecx
xor esi, esi
mov eax, edi
mul dword [ebp + esi*4 - 0x1d0]
add eax, ecx
mov dword [ebp + esi*4 - 0x1d0], eax
adc edx, 0
inc esi
mov ecx, edx
cmp esi, ebx
jne 0x18153ffd
test ecx, ecx
je 0x18153f92
mov eax, dword [ebp - 0x1d4]
cmp eax, 0x73
jae 0x18154045
mov dword [ebp + eax*4 - 0x1d0], ecx
mov ebx, dword [ebp - 0x1d4]
inc ebx
mov dword [ebp - 0x1d4], ebx
jmp 0x18153f98
xor eax, eax
mov dword [ebp - 0xb2c], eax
mov dword [ebp - 0x1d4], eax
push eax
lea eax, [ebp - 0xb28]
push eax
lea eax, [ebp - 0x1d0]
push 0x1cc
push eax
call fcn.181556ef
mov eax, dword [ebp - 0x94c]
add esp, 0x10
push dword [ebp - 0x954]
movzx eax, byte [eax + 0x308]
push eax
call fcn.18152f16
pop ecx
pop ecx
push 3
pop eax
jmp 0x18155180
mov eax, dword [ebp + ebx*4 - 0x1d4]
and dword [ebp - 0x948], 0
bsr eax, eax
je 0x181540a8
inc eax
jmp 0x181540aa
xor eax, eax
lea ecx, [ebx - 1]
shl ecx, 5
add ecx, eax
mov dword [ebp - 0x940], ecx
cmp ecx, dword [ebp - 0x950]
jae 0x18155149
mov eax, dword [ebp - 0x91c]
test eax, eax
je 0x18155149
mov edx, dword [ebp - 0x95c]
xor ebx, ebx
xor esi, esi
mov dword [ebp - 0x3a4], ebx
xor ecx, ecx
mov dword [ebp - 0x924], esi
mov edi, edx
mov dword [ebp - 0x920], edx
cmp edx, dword [ebp - 0x958]
je 0x18154723
cmp ecx, 9
jne 0x1815420d
test ebx, ebx
je 0x18154195
xor ecx, ecx
mov esi, 0x3b9aca00
xor edi, edi
mov eax, dword [ebp + edi*4 - 0x3a0]
mul esi
add eax, ecx
mov dword [ebp + edi*4 - 0x3a0], eax
adc edx, 0
inc edi
mov ecx, edx
cmp edi, ebx
jne 0x18154118
mov esi, dword [ebp - 0x924]
test ecx, ecx
je 0x18154189
mov eax, dword [ebp - 0x3a4]
cmp eax, 0x73
jae 0x1815415f
mov dword [ebp + eax*4 - 0x3a0], ecx
mov ebx, dword [ebp - 0x3a4]
inc ebx
mov dword [ebp - 0x3a4], ebx
jmp 0x1815418f
xor eax, eax
push eax
mov dword [ebp - 0xb2c], eax
mov dword [ebp - 0x3a4], eax
lea eax, [ebp - 0xb28]
push eax
lea eax, [ebp - 0x3a0]
push 0x1cc
push eax
call fcn.181556ef
add esp, 0x10
mov ebx, dword [ebp - 0x3a4]
mov edi, dword [ebp - 0x920]
test esi, esi
je 0x18154209
xor ecx, ecx
test ebx, ebx
je 0x181541bd
mov eax, esi
xor esi, esi
add dword [ebp + ecx*4 - 0x3a0], eax
mov ebx, dword [ebp - 0x3a4]
adc esi, esi
inc ecx
mov eax, esi
cmp ecx, ebx
jne 0x1815419f
test eax, eax
je 0x18154209
cmp ebx, 0x73
jae 0x181541d8
mov dword [ebp + ebx*4 - 0x3a0], esi
mov ebx, dword [ebp - 0x3a4]
inc ebx
mov dword [ebp - 0x3a4], ebx
jmp 0x18154209
and dword [ebp - 0xb2c], 0
lea eax, [ebp - 0xb28]
and dword [ebp - 0x3a4], 0
push 0
push eax
lea eax, [ebp - 0x3a0]
push 0x1cc
push eax
call fcn.181556ef
mov ebx, dword [ebp - 0x3a4]
add esp, 0x10
xor esi, esi
xor ecx, ecx
movzx eax, byte [edi]
imul esi, esi, 0xa
add esi, eax
inc ecx
inc edi
mov dword [ebp - 0x924], esi
mov dword [ebp - 0x920], edi
cmp edi, dword [ebp - 0x958]
jne 0x181540fe
test ecx, ecx
je 0x1815471d
mov eax, ecx
xor edx, edx
push 0xa
pop ecx
div ecx
mov dword [ebp - 0x928], eax
mov ecx, edx
mov dword [ebp - 0x944], ecx
test eax, eax
je 0x181545bf
cmp eax, 0x26
jbe 0x1815425e
push 0x26
pop eax
movzx ecx, byte [eax*4 + 0x18175646]
movzx esi, byte [eax*4 + 0x18175647]
mov edi, ecx
mov dword [ebp - 0x934], eax
shl edi, 2
push edi
lea eax, [ecx + esi]
mov dword [ebp - 0x914], eax
lea eax, [ebp - 0x910]
push 0
push eax
call fcn.18144340
mov eax, esi
shl eax, 2
push eax
mov eax, dword [ebp - 0x934]
movzx eax, word [eax*4 + 0x18175644]
lea eax, [eax*4 + 0x18174d40]
push eax
lea eax, [ebp - 0x910]
add eax, edi
push eax
call fcn.18144bc0
mov ecx, dword [ebp - 0x914]
xor eax, eax
inc eax
mov dword [ebp - 0x92c], ecx
add esp, 0x18
cmp ecx, eax
ja 0x18154389
mov edi, dword [ebp - 0x910]
test edi, edi
jne 0x181542f9
xor eax, eax
mov dword [ebp - 0xb2c], eax
mov dword [ebp - 0x3a4], eax
push eax
lea eax, [ebp - 0xb28]
jmp 0x1815457c
cmp edi, eax
je 0x18154599
test ebx, ebx
je 0x18154599
xor ecx, ecx
xor esi, esi
mov eax, edi
mul dword [ebp + esi*4 - 0x3a0]
add eax, ecx
mov dword [ebp + esi*4 - 0x3a0], eax
adc edx, 0
inc esi
mov ecx, edx
cmp esi, ebx
jne 0x1815430d
test ecx, ecx
je 0x1815437c
mov eax, dword [ebp - 0x3a4]
cmp eax, 0x73
jae 0x1815434e
mov dword [ebp + eax*4 - 0x3a0], ecx
mov ebx, dword [ebp - 0x3a4]
inc ebx
mov dword [ebp - 0x3a4], ebx
jmp 0x18154382
xor ebx, ebx
lea eax, [ebp - 0xb28]
push ebx
push eax
lea eax, [ebp - 0x3a0]
mov dword [ebp - 0xb2c], ebx
push 0x1cc
push eax
mov dword [ebp - 0x3a4], ebx
call fcn.181556ef
mov al, bl
jmp 0x18154590
mov ebx, dword [ebp - 0x3a4]
mov al, 1
jmp 0x18154599
cmp ebx, eax
ja 0x1815441b
mov edi, dword [ebp - 0x3a0]
mov eax, ecx
shl eax, 2
mov ebx, 0x1cc
push eax
lea eax, [ebp - 0x910]
mov dword [ebp - 0x3a4], ecx
push eax
lea eax, [ebp - 0x3a0]
push ebx
push eax
call fcn.181556ef
add esp, 0x10
xor eax, eax
test edi, edi
jne 0x181543df
push eax
mov dword [ebp - 0xb2c], eax
mov dword [ebp - 0x3a4], eax
lea eax, [ebp - 0xb28]
push eax
push ebx
jmp 0x18154582
mov ebx, dword [ebp - 0x3a4]
inc eax
cmp edi, eax
je 0x18154599
test ebx, ebx
je 0x18154599
xor ecx, ecx
xor esi, esi
mov eax, edi
mul dword [ebp + esi*4 - 0x3a0]
add eax, ecx
mov dword [ebp + esi*4 - 0x3a0], eax
adc edx, 0
inc esi
mov ecx, edx
cmp esi, ebx
jne 0x181543fa
jmp 0x18154329
cmp ecx, ebx
lea edx, [ebp - 0x910]
setb al
jb 0x1815442e
lea edx, [ebp - 0x3a0]
mov dword [ebp - 0x938], edx
test al, al
je 0x1815444c
mov dword [ebp - 0x930], ebx
lea ebx, [ebp - 0x3a0]
mov dword [ebp - 0x920], ebx
jmp 0x18154466
mov dword [ebp - 0x930], ecx
lea eax, [ebp - 0x910]
mov ecx, ebx
mov dword [ebp - 0x920], eax
mov dword [ebp - 0x92c], ecx
xor eax, eax
xor edi, edi
mov dword [ebp - 0x744], eax
test ecx, ecx
je 0x1815456c
cmp dword [edx + edi*4], 0
jne 0x1815449c
cmp edi, eax
jne 0x18154563
and dword [ebp + edi*4 - 0x740], 0
lea eax, [edi + 1]
mov dword [ebp - 0x744], eax
jmp 0x18154563
xor edx, edx
xor ebx, ebx
mov esi, edi
mov dword [ebp - 0x93c], edx
cmp dword [ebp - 0x930], edx
je 0x18154554
cmp esi, 0x73
je 0x18154516
cmp esi, eax
jne 0x181544d0
and dword [ebp + esi*4 - 0x740], 0
lea eax, [edi + 1]
add eax, edx
mov dword [ebp - 0x744], eax
mov eax, dword [ebp - 0x920]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp - 0x938]
mul dword [edx + edi*4]
add eax, dword [ebp + esi*4 - 0x740]
adc edx, 0
add eax, ebx
mov dword [ebp + esi*4 - 0x740], eax
mov eax, dword [ebp - 0x744]
adc edx, 0
mov ebx, edx
mov edx, dword [ebp - 0x93c]
inc edx
inc esi
mov dword [ebp - 0x93c], edx
cmp edx, dword [ebp - 0x930]
jne 0x181544b4
test ebx, ebx
je 0x18154554
lea edx, [ebp - 0x740]
lea edx, [edx + esi*4]
cmp esi, 0x73
je 0x1815454e
cmp esi, eax
jne 0x18154538
and dword [edx], 0
lea eax, [esi + 1]
mov dword [ebp - 0x744], eax
mov ecx, edx
mov eax, ebx
inc esi
add edx, 4
xor ebx, ebx
add dword [ecx], eax
mov eax, dword [ebp - 0x744]
adc ebx, ebx
jne 0x18154523
mov ecx, dword [ebp - 0x92c]
cmp esi, 0x73
je 0x18154630
mov edx, dword [ebp - 0x938]
inc edi
cmp edi, ecx
jne 0x18154478
mov dword [ebp - 0x3a4], eax
shl eax, 2
push eax
lea eax, [ebp - 0x740]
push eax
push 0x1cc
lea eax, [ebp - 0x3a0]
push eax
call fcn.181556ef
mov al, 1
add esp, 0x10
mov ebx, dword [ebp - 0x3a4]
test al, al
je 0x18154661
mov eax, dword [ebp - 0x928]
sub eax, dword [ebp - 0x934]
mov dword [ebp - 0x928], eax
jne 0x18154256
mov ecx, dword [ebp - 0x944]
test ecx, ecx
je 0x181546a3
mov edi, dword [ecx*4 + 0x181756dc]
test edi, edi
je 0x18154673
cmp edi, 1
je 0x181546a3
test ebx, ebx
je 0x181546a3
xor ecx, ecx
xor esi, esi
mov eax, edi
mul dword [ebp + esi*4 - 0x3a0]
add eax, ecx
mov dword [ebp + esi*4 - 0x3a0], eax
adc edx, 0
inc esi
mov ecx, edx
cmp esi, ebx
jne 0x181545eb
test ecx, ecx
je 0x1815469d
mov eax, dword [ebp - 0x3a4]
cmp eax, 0x73
jae 0x18154673
mov dword [ebp + eax*4 - 0x3a0], ecx
mov ebx, dword [ebp - 0x3a4]
inc ebx
mov dword [ebp - 0x3a4], ebx
jmp 0x181546a3
xor eax, eax
push eax
mov dword [ebp - 0xb2c], eax
mov dword [ebp - 0x3a4], eax
lea eax, [ebp - 0xb28]
push eax
lea eax, [ebp - 0x3a0]
push 0x1cc
push eax
call fcn.181556ef
add esp, 0x10
xor al, al
jmp 0x18154593
and dword [ebp - 0xb2c], 0
and dword [ebp - 0x3a4], 0
push 0
jmp 0x18154682
xor eax, eax
push eax
mov dword [ebp - 0x3a4], eax
mov dword [ebp - 0xb2c], eax
lea eax, [ebp - 0xb28]
push eax
lea eax, [ebp - 0x3a0]
push 0x1cc
push eax
call fcn.181556ef
add esp, 0x10
mov ebx, dword [ebp - 0x3a4]
mov edx, dword [ebp - 0x924]
test edx, edx
je 0x1815471d
xor ecx, ecx
test ebx, ebx
je 0x181546d1
mov eax, edx
xor edx, edx
add dword [ebp + ecx*4 - 0x3a0], eax
mov ebx, dword [ebp - 0x3a4]
adc edx, edx
inc ecx
mov eax, edx
cmp ecx, ebx
jne 0x181546b3
test eax, eax
je 0x1815471d
cmp ebx, 0x73
jae 0x181546ec
mov dword [ebp + ebx*4 - 0x3a0], edx
mov ebx, dword [ebp - 0x3a4]
inc ebx
mov dword [ebp - 0x3a4], ebx
jmp 0x1815471d
and dword [ebp - 0xb2c], 0
lea eax, [ebp - 0xb28]
and dword [ebp - 0x3a4], 0
push 0
push eax
lea eax, [ebp - 0x3a0]
push 0x1cc
push eax
call fcn.181556ef
mov ebx, dword [ebp - 0x3a4]
add esp, 0x10
mov eax, dword [ebp - 0x91c]
mov ecx, dword [ebp - 0x94c]
cmp dword [ecx], 0
jge 0x18154730
sub eax, dword [ecx]
push 0xa
xor edx, edx
and dword [ebp - 0x56c], 0
pop esi
div esi
xor ecx, ecx
inc ecx
mov dword [ebp - 0x920], edx
mov dword [ebp - 0x570], ecx
mov dword [ebp - 0x91c], ecx
mov dword [ebp - 0x574], ecx
mov dword [ebp - 0x934], eax
test eax, eax
je 0x18154b2e
cmp eax, 0x26
jbe 0x18154777
push 0x26
pop ebx
mov dword [ebp - 0x938], ebx
jmp 0x1815477f
mov ebx, eax
mov dword [ebp - 0x938], eax
movzx ecx, byte [ebx*4 + 0x18175646]
movzx esi, byte [ebx*4 + 0x18175647]
mov edi, ecx
shl edi, 2
push edi
push 0
lea eax, [ecx + esi]
mov dword [ebp - 0x914], eax
lea eax, [ebp - 0x910]
push eax
call fcn.18144340
mov eax, esi
shl eax, 2
push eax
movzx eax, word [ebx*4 + 0x18175644]
lea eax, [eax*4 + 0x18174d40]
push eax
lea eax, [ebp - 0x910]
add eax, edi
push eax
call fcn.18144bc0
mov ebx, dword [ebp - 0x914]
xor edx, edx
inc edx
add esp, 0x18
cmp ebx, edx
ja 0x181548bd
mov ebx, dword [ebp - 0x910]
test ebx, ebx
jne 0x18154831
xor eax, eax
push eax
mov dword [ebp - 0xb2c], eax
mov dword [ebp - 0x574], eax
lea eax, [ebp - 0xb28]
push eax
push 0x1cc
lea eax, [ebp - 0x570]
push eax
call fcn.181556ef
add esp, 0x10
mov eax, dword [ebp - 0x574]
mov dword [ebp - 0x91c], eax
mov dl, 1
mov ecx, dword [ebp - 0x91c]
jmp 0x18154b02
cmp ebx, edx
je 0x18154826
mov ecx, dword [ebp - 0x91c]
test ecx, ecx
je 0x18154826
xor esi, esi
xor edi, edi
mov eax, ebx
mul dword [ebp + edi*4 - 0x570]
add eax, esi
mov dword [ebp + edi*4 - 0x570], eax
adc edx, 0
inc edi
mov esi, edx
cmp edi, ecx
jne 0x18154843
jmp 0x18154965
mov dword [ebp + eax*4 - 0x570], esi
mov ecx, dword [ebp - 0x574]
inc ecx
mov dword [ebp - 0x91c], ecx
mov dword [ebp - 0x574], ecx
jmp 0x18154824
xor ebx, ebx
lea eax, [ebp - 0xb28]
push ebx
push eax
lea eax, [ebp - 0x570]
mov dword [ebp - 0xb2c], ebx
push 0x1cc
push eax
mov dword [ebp - 0x574], ebx
call fcn.181556ef
mov dl, bl
add esp, 0x10
mov eax, dword [ebp - 0x574]
mov dword [ebp - 0x91c], eax
jmp 0x18154826
mov eax, dword [ebp - 0x91c]
cmp eax, edx
ja 0x18154981
mov esi, dword [ebp - 0x570]
mov eax, ebx
shl eax, 2
push eax
lea eax, [ebp - 0x910]
mov dword [ebp - 0x574], ebx
push eax
mov ebx, 0x1cc
mov dword [ebp - 0x944], esi
lea eax, [ebp - 0x570]
push ebx
push eax
call fcn.181556ef
add esp, 0x10
xor eax, eax
test esi, esi
jne 0x1815491f
push eax
mov dword [ebp - 0xb2c], eax
mov dword [ebp - 0x574], eax
lea eax, [ebp - 0xb28]
push eax
push ebx
jmp 0x18154809
inc eax
cmp esi, eax
jne 0x18154928
mov dl, al
jmp 0x181548ac
mov ecx, dword [ebp - 0x574]
mov dword [ebp - 0x91c], ecx
test ecx, ecx
jne 0x1815493f
mov dl, al
jmp 0x18154826
mov ebx, dword [ebp - 0x944]
xor esi, esi
xor edi, edi
mov eax, ebx
mul dword [ebp + edi*4 - 0x570]
add eax, esi
mov dword [ebp + edi*4 - 0x570], eax
adc edx, 0
inc edi
mov esi, edx
cmp edi, ecx
jne 0x18154949
test esi, esi
je 0x18154818
mov eax, dword [ebp - 0x574]
cmp eax, 0x73
jb 0x18154864
jmp 0x18154880
cmp ebx, eax
lea edx, [ebp - 0x910]
setb cl
jb 0x18154994
lea edx, [ebp - 0x570]
mov dword [ebp - 0x92c], edx
test cl, cl
je 0x181549b2
lea ecx, [ebp - 0x570]
mov dword [ebp - 0x924], eax
mov dword [ebp - 0x928], ecx
jmp 0x181549c6
mov dword [ebp - 0x924], ebx
mov ebx, eax
lea eax, [ebp - 0x910]
mov dword [ebp - 0x928], eax
xor eax, eax
xor edi, edi
mov dword [ebp - 0x744], eax
test ebx, ebx
je 0x18154acf
cmp dword [edx + edi*4], 0
jne 0x181549fc
cmp edi, eax
jne 0x18154ac6
and dword [ebp + edi*4 - 0x740], 0
lea eax, [edi + 1]
mov dword [ebp - 0x74aa0744], eax
push ebp
mov ebp, esp
jne 0x18154a0a
movsb byte es:[edi], byte [esi]
and al, 8
push esi
push edi
xor edi, edi
movzx eax, word [ecx + 0x14]
movzx esi, word [ecx + 6]
adc al, 0xf
mov bh, 0x71
push es
test esi, esi
lea eax, [eax + ecx + 0x18]
jbe 0x18154aff
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x18154ae6
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
cmp dword [esp + 0xc], edx
jb 0x18154af7
add edx, ecx
cmp dword [esp + 0xc], edx
jb 0x18154b01
inc edi
add eax, 0x28
cmp edi, esi
jb 0x18154adc
xor eax, eax
pop edi
pop esi
ret
adc al, 0x53
push esi
push edi
call fcn.18154a62
ret
mov edi, dword [ebp - 0x88]
mov eax, dword [ebp + 0xc]
cmp ax, word [edi + 6]
push es
jne 0x1815515b
mov edx, dword [ebp - 0xb4]
xor ecx, ecx
mov edi, 0x60000000
jmp 0x18155179
movzx eax, ax
lea eax, [eax + eax*4]
mov ecx, dword [edi + eax*8 + 0x104]
mov edx, dword [edi + eax*8 + 0x108]
lea eax, [edi + eax*8 + 0xf8]
mov edi, dword [eax + 0x24]
lea eax, [edx + ecx - 1]
xor edx, edx
div dword [ebp - 0xac]
xor edx, edx
mov dword [ebp - 0x44], eax
mov eax, ecx
invalid
mov ch, 0x54
mov ch, 0x54
invalid