Function at 0x10003497
Capabilities:
Terminate process

Disassembly:
push 0x1002ad50
call sub.USER32.dll_CharNextA
mov eax, dword [0x1002ae48]
mov esi, 0x4b
add eax, edx
test eax, eax
jne 0x10002bc1
mov eax, dword [0x1002aff0]
mov dword [0x1002afb0], eax
mov eax, dword [0x1002ae00]
mov ax, 2
mov eax, dword [0x1002aec0]
mov ax, 0x80
mov dword [0x1002af28], eax
mov dword [0x1002acbc], ecx
push 0x1002ae10
call sub.USER32.dll_CharNextA
mov ecx, dword [0x1002aef4]
mov ax, 0x3b
sub eax, eax
cmp eax, 1
jg 0x10002bf9
mov esi, dword [0x1002afcc]
sub ecx, esi
mov edx, dword [0x1002ade0]
mov si, 4
mov dword [0x1002aed4], eax
mov edx, dword [0x1002afd0]
mov ecx, dword [0x1002ae94]
push 0x1002aeac
call sub.USER32.dll_CharNextA
adc ecx, dword [0x1002b038]
sub edx, edx
mov ecx, dword [0x1002b06c]
mov eax, 0x10
cmp dword [0x1002b064], 0x10
jne 0x10002c4a
mov dword [0x1002adac], edi
mov eax, dword [0x1002ae58]
add edi, eax
sub esi, ecx
and dword [0x1002ae40], 0x88888888
add dword [0x1002ae94], eax
mov dword [0x1002aea8], edi
mov eax, dword [0x1002af84]
push 0x1002acf4
call sub.USER32.dll_CharNextA
mov edi, dword [0x1002af90]
mov ax, 0x20
cmp edx, dword [0x1002ae88]
jne 0x10002c93
mov dword [0x1002afbc], edx
mov ecx, dword [0x1002af14]
mov eax, dword [0x1002aebc]
add eax, eax
mov eax, 2
mov dword [0x1002b01c], edx
mov eax, dword [0x1002afc4]
mov dword [0x1002acbc], eax
mov eax, dword [0x1002ae8c]
push 0x1002af50
call sub.USER32.dll_CharNextA
mov eax, dword [0x1002af98]
add eax, eax
mov eax, 1
cmp esi, dword [0x1002acfc]
je 0x10002cd8
mov esi, dword [0x1002afb0]
mov esi, dword [0x1002b040]
mov esi, 0x13
mov dword [0x1002ad38], esi
mov dword [0x1002af34], edi
mov eax, dword [0x1002af20]
mov dword [0x1002aecc], eax
push 0x1002ae2c
call sub.USER32.dll_CharNextA
mov eax, dword [0x1002acbc]
add esi, eax
mov cx, 0x10
cmp eax, eax
jae 0x10002d14
mov edx, dword [0x1002aeac]
or eax, dword [0x1002addc]
mov esi, 0x10
mov esi, dword [0x1002ad04]
sub dword [0x1002acfc], 2
mov dword [0x1002ad50], eax
push 0x1002ace4
call sub.USER32.dll_CharNextA
mov edx, dword [0x1002ad7c]
mov ax, 0x80
sub eax, edi
cmp dword [0x1002acbc], 0
jl 0x10002d65
mov dword [0x1002acbc], esi
add eax, dword [0x1002b00c]
mov edx, 2
add eax, eax
or dword [0x1002b040], 0xff00ff
mov dword [0x1002aeac], esi
mov eax, dword [0x1002ae28]
mov esi, dword [0x1002ae9c]
mov dword [0x1002aefc], edx
push 0x1002ad5c
call sub.USER32.dll_CharNextA
mov eax, dword [0x1002ade0]
add eax, ecx
cmp edi, eax
jne 0x10002da8
mov edx, dword [0x1002aeb0]
mov esi, dword [0x1002af70]
xor eax, edx
mov edi, dword [0x1002af30]
mov eax, dword [0x1002ae30]
mov dword [0x1002ad00], edi
push 0x1002aed0
call sub.USER32.dll_CharNextA
add eax, dword [0x1002ae1c]
mov eax, 0x80
mov eax, 2
cmp eax, eax
jb 0x10002e02
mov ecx, dword [0x1002adb8]
add eax, dword [0x1002b050]
mov esi, dword [0x1002adbc]
or eax, eax
mov ecx, dword [0x1002b00c]
sub edi, eax
mov dword [0x1002af94], eax
mov dword [0x1002af64], eax
mov edi, dword [0x1002adb4]
mov dword [0x1002aeb4], eax
mov dword [0x1002ad60], eax
mov dword [0x1002b070], edx
push 0x1002b0b4
call sub.USER32.dll_CharNextA
mov edx, dword [0x1002b0ac]
mov ax, 4
or eax, esi
cmp dword [0x1002af00], eax
jne 0x10002e4f
mov dword [0x1002adac], edx
mov eax, dword [0x1002ad28]
add edi, esi
mov eax, dword [0x1002b03c]
add eax, edx
mov dword [0x1002aef4], eax
mov edx, dword [0x1002afa4]
mov dword [0x1002ae1c], eax
mov dword [0x1002add0], eax
mov dword [0x1002affc], eax
push 0x1002afc0
call sub.USER32.dll_CharNextA
adc al, 0
add byte [ebx], ah
add eax, 0x1002af14
sub edi, eax
mov si, 0x5d
cmp eax, 1
jbe 0x10002e9d
mov dword [0x1002b080], ecx
mov eax, dword [0x1002acbc]
mov eax, dword [0x1002acbc]
mov eax, 0x80
mov edi, dword [0x1002add8]
sub esi, eax
mov dword [0x1002aed8], edx
mov dword [0x1002acbc], esi
mov dword [0x1002ad84], esi
mov dword [0x1002aeb8], edi
add esi, dword [0x1002ad00]
add edx, eax
xor eax, dword [0x1002ae64]
mov ax, 0x40
cmp dword [0x1002ae2c], 0x11
jb 0x10002ee4
mov eax, dword [0x1002ae80]
mov eax, dword [0x1002acbc]
mov eax, 1
mov esi, dword [0x1002ae80]
mov dword [0x1002b064], edi
mov edi, dword [0x1002acf4]
mov cx, 0x40
mov edx, dword [0x1002aeec]
mov ecx, 0x63
cmp eax, dword [0x1002adc0]
jb 0x10002f30
mov dword [0x1002b004], eax
mov ecx, dword [0x1002acbc]
mov ax, 0x97
add eax, edx
mov dword [0x1002aed4], edx
mov dword [0x1002ad68], ecx
mov edx, dword [0x1002ae08]
mov edi, dword [0x1002b08c]
mov esi, dword [0x1002ace0]
mov eax, dword [0x1002adf0]
sub eax, edx
mov eax, 0xd4
test edi, edi
jb 0x10002f6e
mov edx, dword [0x1002af5c]
mov eax, dword [0x1002b054]
add eax, edi
mov ecx, dword [0x1002aeec]
mov dword [0x1002af0c], eax
mov eax, dword [0x1002ad6c]
mov eax, dword [0x1002af08]
mov dword [0x1002ae1c], eax
push 0x1002ad70
call sub.USER32.dll_CharNextA
mov esi, dword [0x1002ad00]
mov ax, 0xb9
mov eax, dword [0x1002af44]
add esi, eax
cmp eax, dword [0x1002b078]
jae 0x10002fb4
mov dword [0x1002ad6c], edi
mov eax, dword [0x1002acbc]
add esi, ecx
mov ecx, dword [0x1002ae04]
mov dword [0x1002ad50], eax
mov dword [0x1002ae1c], esi
mov eax, dword [0x1002ae28]
push 0x1002acc0
call sub.USER32.dll_CharNextA
mov edx, dword [0x1002b098]
mov cx, 0x80
mov edi, dword [0x1002af68]
cmp eax, dword [0x1002adec]
jg 0x10002ffe
mov edx, dword [0x1002acdc]
mov eax, dword [0x1002ad2c]
and edi, eax
sub ecx, eax
xor dword [0x1002b040], 0x44440044
xor dword [0x1002acc4], 0xff0000ff
mov dword [0x1002adcc], edx
push 0x1002af1c
call sub.USER32.dll_CharNextA
mov eax, dword [0x1002adbc]
mov ax, 0x80
mov esi, dword [0x1002af34]
mov si, 4
cmp eax, dword [0x1002acbc]
jae 0x1000304a
mov dword [0x1002aed0], ecx
mov edi, dword [0x1002adf0]
sub eax, eax
mov esi, dword [0x1002ad94]
sub edx, edi
mov dword [0x1002aed4], eax
mov dword [0x1002aefc], edx
mov esi, dword [0x1002b0a0]
mov eax, dword [0x1002af24]
mov edx, dword [0x1002ad7c]
mov di, 8
cmp eax, dword [0x1002af2c]
jae 0x1000308b
mov eax, dword [0x1002ad94]
mov edi, dword [0x1002b004]
mov ax, 0x10
mov ecx, dword [0x1002afe0]
mov ecx, 0x34
mov dword [0x1002af04], eax
mov dword [0x1002ae28], eax
mov ecx, dword [0x1002b050]
call fcn.10001678
mov ecx, dword [0x1002ae40]
sub ecx, eax
mov eax, dword [0x1002af44]
cmp edx, 0
ja 0x100030d2
mov eax, dword [0x1002b070]
mov edi, dword [0x1002add4]
mov eax, dword [0x1002af14]
scasd eax, dword es:[edi]
add dl, byte [eax]
add eax, eax
mov edi, dword [0x1002ae70]
sub eax, eax
mov dword [0x1002af70], eax
mov dword [0x1002acbc], ecx
mov esp, 0xa11002ac
push esp
scasb al, byte es:[edi]
add dl, byte [eax]
mov dword [0x1002add0], edi
mov esi, dword [0x1002b0a8]
sub eax, eax
sub eax, edi
cmp eax, eax
ja 0x10003109
mov dword [0x1002acbc], esi
mov ecx, dword [0x1002ad18]
sub eax, eax
mov edx, dword [0x1002ad14]
mov ecx, 0x20
mov dword [0x1002afbc], eax
mov dword [0x1002ae5c], eax
mov dword [0x1002ae4c], edx
mov edi, dword [0x1002b090]
call fcn.10001248
push 0x1002af08
call sub.USER32.dll_CharNextA
mov edx, dword [0x1002ae00]
mov edi, 4
mov edx, dword [0x1002aeb0]
cmp dword [0x1002acdc], eax
jne 0x10003156
mov dword [0x1002acbc], eax
adc edi, dword [0x1002ae80]
sub edi, edi
mov dword [0x1002ad40], edi
xor eax, dword [0x1002afc0]
mov edx, dword [0x1002aefc]
call fcn.10003f50
mov esi, dword [0x1002ad18]
sub edx, eax
cmp dword [0x1002aeec], 0x40
jne 0x10003196
add dword [0x1002b0b4], edx
mov eax, dword [0x1002ade4]
mov esi, dword [0x1002ae50]
mov ax, 2
mov eax, dword [0x1002af84]
mov dword [0x1002aea8], eax
mov dword [0x1002acec], eax
mov eax, dword [0x1002ae98]
mov dword [0x1002af84], eax
call fcn.10002494
mov eax, dword [0x1002aeb8]
add ecx, eax
mov eax, dword [0x1002ad10]
cmp edi, eax
jg 0x100031cb
mov edx, dword [0x1002afa0]
mov ecx, 0xd9
mov esi, dword [0x1002b0a4]
mov dword [0x1002adc0], eax
mov edx, dword [0x1002acd4]
call fcn.10001f90
push 0x1002ade8
call sub.USER32.dll_CharNextA
call fcn.10001d14
mov esi, dword [0x1002acbc]
mov esi, 0x40
cmp eax, 1
je 0x1000320f
mov dword [0x1002b02c], edi
or ecx, dword [0x1002af94]
mov ecx, dword [0x1002b0b0]
sub edx, ecx
mov dword [0x1002af44], ecx
mov dword [0x1002ad68], edx
mov edi, dword [0x1002ae44]
sub eax, dword [0x1002ae10]
mov eax, 2
mov ecx, dword [0x1002add8]
cmp edi, 0
jl 0x1000325d
mov dword [0x1002aeec], eax
mov eax, dword [0x1002b010]
add edx, esi
mov esi, dword [0x1002af6c]
mov esi, 0x40
mov dword [0x1002b078], eax
mov dword [0x1002acbc], edi
mov eax, dword [0x1002ad7c]
mov eax, dword [0x1002afe8]
mov edi, dword [0x1002b0ac]
call fcn.10001678
mov eax, dword [0x1002b09c]
mov dx, 0x40
mov edi, dword [0x1002ad00]
cmp edx, 1
jne 0x1000328a
mov eax, dword [0x1002af00]
or eax, eax
sub ecx, esi
mov dword [0x1002adb0], eax
push 0x1002acc4
call sub.USER32.dll_CharNextA
call fcn.10001f90
mov eax, dword [0x1002b088]
add eax, eax
mov esi, 0xa8
cmp eax, dword [0x1002af48]
jb 0x100032cf
mov esi, dword [0x1002ad68]
mov eax, dword [0x1002ae74]
mov eax, dword [0x1002afcc]
mov edx, 0x10
sub edi, eax
mov dword [0x1002aec8], eax
adc eax, dword [0x1002aebc]
mov eax, dword [0x1002af08]
and dword [0x1002ad64], eax
push 0x1002acbc
call sub.USER32.dll_CharNextA
mov eax, dword [0x1002af0c]
mov esi, 0x3c
cmp edx, dword [0x1002ae6c]
jae 0x10003310
mov eax, dword [0x1002ae28]
mov ax, 0x8d
mov edi, dword [0x1002ad34]
mov eax, 4
mov dword [0x1002aee4], esi
mov ecx, dword [0x1002aff8]
call fcn.10003f50
mov eax, dword [0x1002ae94]
sub ecx, ecx
mov eax, 4
cmp dword [0x1002ae04], 4
jae 0x10003354
add eax, dword [0x1002af50]
mov esi, dword [0x1002ae04]
sub esi, eax
mov ecx, 0x40
mov dword [0x1002aee0], edi
mov dword [0x1002af90], eax
mov dword [0x1002affc], ecx
mov ecx, dword [0x1002af34]
mov dword [0x1002af8c], esi
push 0x1002b078
call sub.USER32.dll_CharNextA
mov esi, dword [0x1002ad58]
add ecx, esi
and esi, dword [0x1002acc8]
cmp dword [0x1002adb8], 0x40
js 0x100033a8
mov dword [0x1002af14], eax
mov esi, dword [0x1002aed8]
mov edi, dword [0x1002aefc]
mov edx, 8
adc eax, dword [0x1002ad78]
mov dword [0x1002acf8], eax
mov dword [0x1002af20], ecx
call fcn.10003f50
mov eax, dword [0x1002b088]
add edi, eax
sub eax, esi
cmp eax, dword [0x1002ae74]
je 0x100033d1
mov dword [0x1002adbc], ecx
mov eax, dword [0x1002b044]
add eax, esi
mov dword [0x1002aeb0], edx
mov eax, dword [0x1002b07c]
call fcn.100040f4
mov eax, dword [0x1002aec8]
and eax, edx
mov edi, dword [0x1002acc0]
mov edi, 8
cmp dword [0x1002b090], 0x98
je 0x10003428
mov esi, dword [0x1002ad78]
mov edi, dword [0x1002acbc]
mov edi, dword [0x1002b024]
add edi, edx
mov eax, 0x20
mov dword [0x1002ad50], esi
mov dword [0x1002aee0], eax
mov esi, dword [0x1002af1c]
mov dword [0x1002af44], eax
mov dword [0x1002af70], eax
mov eax, dword [0x1002aec0]
call fcn.10001f90
mov edi, dword [0x1002af6c]
mov esi, 0x13
adc ecx, dword [0x1002b0ac]
add eax, ecx
cmp dword [0x1002adb0], eax
jbe 0x10003473
mov edi, dword [0x1002ad10]
sub eax, edx
mov edx, dword [0x1002b08c]
add eax, eax
mov dword [0x1002aeb0], edx
mov dword [0x1002ae0c], esi
mov dword [0x1002b094], eax
push 0x1002b038
call sub.USER32.dll_CharNextA
call fcn.10001d14
mov eax, dword [0x1002af90]
mov dx, 8
mov eax, dword [0x1002ae6c]
mov esi, 0x99
cmp eax, dword [0x1002ae48]
dec eax
scasb al, byte es:[edi]
add dl, byte [eax]
jbe 0x100034be
mov eax, dword [0x1002ada8]
mov ax, 8
mov edx, dword [0x1002ad7c]
mov dword [0x1002ae44], edi
mov dword [0x1002adb4], edi
mov edi, dword [0x1002ad70]
mov dword [0x1002ada0], eax
mov esi, dword [0x1002af84]
mov ax, 0x20
mov eax, dword [0x1002ae74]
mov eax, 4
cmp edx, 1
jg 0x100034fd
mov edi, dword [0x1002afcc]
mov eax, 0x10
mov ecx, dword [0x1002b0b0]
mov dword [0x1002ad44], edx
mov eax, dword [0x1002b038]
mov dword [0x1002ad6c], eax
mov dword [0x1002aeb8], eax
call fcn.10001d14
mov ecx, dword [0x1002adac]
sub edi, eax
cmp dword [0x1002b040], 0x20
jl 0x10003535
mov esi, dword [0x1002af30]
mov eax, dword [0x1002ae9c]
mov eax, 0xc1
and dword [0x1002b024], 0xffffffff
mov dword [0x1002b030], edi
mov ecx, dword [0x1002aee0]
mov edx, 8
cmp ecx, ecx
je 0x1000356a
mov edx, dword [0x1002af4c]
mov eax, 0x64
mov eax, dword [0x1002ae30]
mov eax, 8
mov dword [0x1002af2c], eax
mov dword [0x1002af4c], esi
mov dword [0x1002acbc], edx
mov eax, dword [0x1002afd0]
mov eax, dword [0x1002af34]
call fcn.10001d14
mov ecx, dword [0x1002af1c]
mov ax, 2
cmp dword [0x1002ace0], 0xe8
jne 0x100035b0
mov eax, dword [0x1002acd4]
add eax, eax
mov eax, dword [0x1002ade0]
or dword [0x1002aeb4], 0xff0000ff
mov eax, dword [0x1002ae10]
mov dword [0x1002afd0], esi
invalid