Function at 0x4481e0
Capabilities:
Get keyboard layout
Parse credit card information

Disassembly:
push ebp
mov eax, 0xe32c
lea ebp, [esp - 0x6c]
call fcn.00458250
mov eax, dword [ebp + 0x74]
push ebx
push esi
xor ebx, ebx
cmp eax, ebx
mov esi, ecx
push edi
mov dword [ebp - 4], esi
je 0x4493cc
cmp byte [eax], bl
je 0x4493cc
mov eax, dword [0x46ab94]
cmp eax, ebx
mov dword [ebp], eax
jne 0x448223
mov eax, dword [esi + 0x494]
mov dword [0x46a548], eax
xor eax, eax
mov byte [ebp - 0x4378], bl
mov ecx, 0x1000
lea edi, [ebp - 0x4377]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x837c]
push 0x45a5d8
push dword [ebp + 0x74]
mov dword [ebp + 0x68], eax
lea eax, [ebp - 0xe2c0]
lea ecx, [ebp - 0x150]
mov dword [ebp + 0x64], ebx
mov dword [ebp + 0x30], ebx
mov dword [ebp + 0x4c], eax
call fcn.004508c7
test eax, eax
je 0x44827d
push ebx
fldz
push ecx
push ecx
fstp qword [esp]
push dword [ebp + 0x74]
push ebx
push 0x45e334
jmp 0x4493c4
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x64]
push eax
push 0x45e320
lea ecx, [ebp - 0x150]
mov dword [ebp + 0x14], ebx
call fcn.00450c9f
test eax, eax
jne 0x4482a7
mov byte [esi + 0x4b1], bl
jmp 0x44834b
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x64]
push eax
push 0x45e310
lea ecx, [ebp - 0x150]
call fcn.00450c9f
test eax, eax
jne 0x4482cc
mov byte [esi + 0x4b1], 1
jmp 0x44834b
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x64]
push eax
push 0x45b68c
lea ecx, [ebp - 0x150]
mov dword [ebp + 0x14], 1
call fcn.00450c9f
test eax, eax
jne 0x4482f7
mov byte [esi + 0x4b1], bl
jmp 0x44831e
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x64]
push eax
push 0x45b684
lea ecx, [ebp - 0x150]
call fcn.00450c9f
test eax, eax
jne 0x4493a8
mov byte [esi + 0x4b1], 1
mov eax, dword [ebp + 0x30]
lea edx, [eax + 0x2bc]
cmp dx, bx
jne 0x448331
mov edx, 0x400
shr eax, 1
mov ecx, dword [ebp + 0x64]
mov dword [ebp + 0x74], ecx
mov ecx, ebx
je 0x44834b
mov edi, dword [ebp + 0x74]
lea edi, [edi + ecx*2]
sub word [edi], dx
inc ecx
cmp ecx, eax
jb 0x44833d
mov eax, dword [ebp + 0x64]
inc dword [0x46ab94]
or dword [ebp + 0x18], 0xffffffff
mov dword [ebp + 0x20], eax
mov eax, dword [ebp]
mov dword [esi + 0x48], eax
mov eax, 0x4000
cmp dword [ebp + 0x30], eax
mov byte [ebp + 0x38], bl
mov byte [ebp + 0x45], bl
mov byte [ebp + 0x42], bl
jg 0x448377
mov eax, dword [ebp + 0x30]
lea ecx, [ebp + 0x20]
push ecx
push ebx
push eax
lea eax, [ebp - 0x837c]
push eax
mov ecx, esi
call fcn.00450610
push 2
mov dword [ebp + 0x5c], eax
lea eax, [ebp - 0x837c]
push 0x45e30c
push eax
call fcn.00458470
add esp, 0xc
neg eax
sbb al, al
inc al
mov byte [ebp + 0x77], al
je 0x4483b8
mov byte [ebp - 0x837c], bl
mov dword [ebp + 0x5c], ebx
cmp dword [ebp + 0x5c], 0xffffffff
je 0x44933b
mov eax, dword [ebp + 0x18]
push 0xc
push 0x45d468
push dword [ebp + 0x68]
inc eax
mov dword [esi + 0x4c], eax
mov dword [esi + 0x23c], ebx
call fcn.00442545
add esp, 0xc
test eax, eax
jne 0x4483f7
push dword [ebp + 0x68]
mov ecx, esi
call fcn.0044947c
test eax, eax
je 0x449365
mov byte [ebp + 8], bl
mov dword [ebp + 0x50], ebx
mov edi, dword [ebp + 0x4c]
mov eax, dword [ebp + 0x30]
sub eax, dword [ebp + 0x20]
inc dword [ebp + 0x18]
add eax, dword [ebp + 0x64]
mov ecx, 0x4000
cmp eax, ecx
jle 0x448417
mov eax, ecx
lea ecx, [ebp + 0x20]
push ecx
push dword [ebp + 0x50]
mov ecx, esi
push eax
push edi
call fcn.00450610
cmp eax, ebx
mov dword [ebp + 0x58], eax
je 0x44859b
cmp eax, 0xffffffff
je 0x44859b
cmp byte [ebp + 0x77], bl
je 0x448571
push 2
push 0x45e308
push edi
call fcn.00458470
add esp, 0xc
test eax, eax
jne 0x448400
sub dword [ebp + 0x58], 2
mov eax, dword [ebp + 0x58]
inc eax
push eax
lea eax, [edi + 2]
push eax
push edi
mov byte [ebp + 0x77], bl
call fcn.00457ea0
push dword [ebp + 0x58]
push edi
call fcn.0040a61e
add esp, 0x14
cmp byte [edi], bl
mov dword [ebp + 0x58], eax
je 0x448400
cmp dword [ebp + 0x50], ebx
jne 0x4488b2
mov ecx, dword [ebp + 0x58]
cmp ecx, 0xffffffff
je 0x448609
cmp byte [edi], 0x28
jne 0x448609
lea eax, [edi + 1]
cmp byte [eax], 0x3a
je 0x448609
cmp byte [ecx + edi - 1], 0x3a
je 0x448609
mov cl, byte [0x467c88]
push eax
mov dword [ebp + 0x50], 1
mov byte [ebp + 8], 1
mov dword [ebp + 0x1c], ebx
mov byte [ebp + 0x3d], cl
mov byte [ebp + 0x3f], 1
mov byte [ebp + 0x36], bl
mov byte [ebp + 0x3e], bl
mov byte [ebp + 0x37], 1
mov byte [ebp - 0x1c], 0xa
mov byte [ebp - 0x1b], bl
mov dword [ebp + 0x24], 1
call fcn.00401ea8
mov edi, eax
cmp byte [edi], bl
pop ecx
je 0x4483fd
push 0x45bc18
push edi
call fcn.00439b0d
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
jne 0x44851c
push edi
call fcn.00457cb0
mov esi, eax
pop ecx
add esi, edi
mov al, byte [esi]
push 4
push 0x45e300
push edi
mov byte [ebp + 0x4b], al
mov byte [esi], bl
call fcn.00442545
add esp, 0xc
test eax, eax
jne 0x448825
push 0x10
add edi, 4
lea eax, [ebp - 0x1c]
push edi
push eax
call fcn.00439851
xor eax, eax
mov al, byte [0x465092]
push 1
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.00438890
lea eax, [ebp - 0x1c]
push eax
call fcn.00457cb0
add esp, 0x1c
mov dword [ebp + 0x24], eax
jmp 0x448894
cmp dword [ebp + 0x50], ebx
jne 0x4488b2
push 2
push 0x45e30c
push edi
call fcn.00458470
add esp, 0xc
test eax, eax
jne 0x44848e
mov byte [ebp + 0x77], 1
jmp 0x448400
cmp byte [ebp + 0x77], bl
je 0x448485
cmp dword [ebp + 0x58], 0xffffffff
jne 0x4483fd
cmp dword [ebp + 0x5c], ebx
je 0x449113
cmp byte [ebp - 0x4378], bl
je 0x448a6c
mov eax, dword [ebp + 0x10]
mov edi, dword [esi + 0x4c]
mov dword [esi + 0x4c], eax
mov eax, dword [ebp + 0x68]
cmp byte [eax], 0x7b
je 0x448a1c
cmp byte [ebp + 0x3c], bl
jne 0x448a1c
push ebx
push ebx
push ebx
push ebx
push ebx
push 3
lea eax, [ebp - 0x4378]
push eax
mov ecx, esi
call fcn.00449d8e
test eax, eax
je 0x449365
mov dword [esi + 0x23c], ebx
jmp 0x448a63
cmp ecx, 0xffffffff
mov dword [ebp + 0x50], ebx
je 0x4485ae
mov eax, dword [ebp + 0x58]
cmp eax, ebx
je 0x4483fd
mov edi, dword [ebp + 0x4c]
cmp byte [eax + edi - 1], 0x3a
jne 0x44862b
cmp byte [edi], 0x2c
jne 0x4485ae
movsx eax, byte [edi]
push eax
call fcn.00442990
cmp eax, 0x41
pop ecx
je 0x44878a
cmp eax, 0x4f
je 0x44876e
mov cl, byte [edi]
cmp cl, 0x3a
je 0x448658
cmp cl, 0x2b
je 0x448658
cmp cl, 0x2d
jne 0x448664
cmp byte [edi + 1], cl
je 0x4485ae
mov edi, dword [ebp + 0x4c]
cmp cl, 0x2e
je 0x44866e
cmp cl, 0x3f
jne 0x448685
mov al, byte [edi + 1]
cmp al, 0x20
je 0x448685
cmp al, 9
je 0x448685
cmp al, 0xa0
je 0x448685
cmp al, 0x3d
jne 0x4485ae
movsx eax, cl
push eax
push 0x45e2ec
call fcn.00457de0
test eax, eax
pop ecx
pop ecx
je 0x4485ae
mov edi, dword [ebp + 0x4c]
push 0x45df64
push edi
call fcn.00457d40
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp + 0x60], eax
je 0x4487df
cmp byte [edi], 0x3a
jne 0x4486fb
jmp 0x4486e9
cmp al, 0x3a
je 0x4485ae
movsx eax, al
push eax
call fcn.0043cc34
test eax, eax
pop ecx
jne 0x4486e9
movsx eax, byte [edi]
push eax
push 0x45e2e4
call fcn.00457de0
test eax, eax
pop ecx
pop ecx
je 0x4486f8
inc edi
mov al, byte [edi]
cmp al, bl
jne 0x4486bf
cmp al, 0x3a
je 0x4485ae
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x4c]
cmp byte [ecx], 0x2c
jne 0x44873f
inc ecx
push ecx
call fcn.00401ea8
push 2
mov edi, eax
push 0x45df64
push edi
call fcn.00458470
add esp, 0x10
test eax, eax
je 0x4485ae
push 3
push 0x45bb7c
dec edi
push edi
call fcn.00458470
add esp, 0xc
test eax, eax
jmp 0x448766
cmp byte [ecx], 0x22
je 0x448743
inc ecx
cmp ecx, eax
jb 0x448739
cmp ecx, eax
je 0x4485ae
add eax, 2
mov cl, byte [eax]
cmp cl, bl
je 0x4485ae
cmp cl, 0x22
je 0x448764
inc eax
mov cl, byte [eax]
cmp cl, bl
jne 0x448758
cmp byte [eax], bl
je 0x4485ae
jmp 0x4487dc
movsx eax, byte [edi + 1]
push eax
call fcn.00442990
cmp eax, 0x52
pop ecx
jne 0x4485ae
mov eax, dword [ebp + 0x4c]
add eax, 2
jmp 0x4487a8
push 3
push 0x45dfac
push edi
call fcn.00442545
add esp, 0xc
test eax, eax
jne 0x4485ae
mov eax, dword [ebp + 0x4c]
add eax, 3
mov cl, byte [eax]
cmp cl, 0x20
je 0x4487bd
cmp cl, 9
je 0x4487bd
cmp cl, 0xa0
jne 0x4485ae
push eax
call fcn.00401ea8
movsx eax, byte [eax]
push eax
push 0x45e2d8
call fcn.00457de0
add esp, 0xc
test eax, eax
jne 0x4485ae
mov edi, dword [ebp + 0x4c]
mov eax, dword [ebp + 0x5c]
mov ecx, dword [ebp + 0x58]
add ecx, eax
cmp ecx, 0x4000
jae 0x4492cd
cmp byte [edi], 0x2c
je 0x448803
mov ecx, dword [ebp + 0x68]
mov byte [eax + ecx], 0x20
inc eax
mov dword [ebp + 0x5c], eax
mov eax, dword [ebp + 0x58]
inc eax
push eax
push edi
mov ecx, dword [ebp + 0x68]
mov eax, dword [ebp + 0x5c]
add eax, ecx
push eax
call fcn.004576b0
mov eax, dword [ebp + 0x58]
add esp, 0xc
add dword [ebp + 0x5c], eax
jmp 0x448400
push 5
push 0x45e2d0
push edi
call fcn.00442545
add esp, 0xc
test eax, eax
jne 0x448843
cmp byte [edi + 5], 0x30
setne byte [ebp + 0x3d]
jmp 0x448894
push 5
push 0x45e2c8
push edi
call fcn.00442545
add esp, 0xc
test eax, eax
jne 0x44888e
cmp byte [edi + 5], 0x30
setne byte [ebp + 0x3f]
jmp 0x448894
cmp al, 0x25
je 0x448889
cmp al, 0x2c
je 0x448884
cmp al, 0x43
je 0x448875
cmp al, 0x60
je 0x44887e
cmp al, 0x63
jne 0x44888d
mov dword [ebp + 0x50], 2
jmp 0x44888d
mov byte [ebp + 0x36], 1
jmp 0x44888d
mov byte [ebp + 0x37], bl
jmp 0x44888d
mov byte [ebp + 0x3e], 1
inc edi
mov al, byte [edi]
cmp al, bl
jne 0x448861
mov al, byte [ebp + 0x4b]
push esi
mov byte [esi], al
call fcn.00401ea8
mov edi, eax
cmp byte [edi], bl
pop ecx
jne 0x4484fe
mov esi, dword [ebp - 4]
jmp 0x4483fd
cmp dword [ebp + 0x58], 0xffffffff
je 0x44932c
cmp dword [ebp + 0x58], 0xfffffffe
je 0x448400
cmp byte [edi], 0x29
jne 0x4488e3
lea eax, [edi + 1]
push 0xffffffffffffffff
push edi
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], eax
call fcn.0040a66d
pop ecx
dec eax
jmp 0x4489bc
cmp byte [ebp + 0x3f], bl
mov dword [ebp + 0x54], edi
je 0x4488f9
push dword [ebp + 0x58]
push edi
call fcn.0040a66d
pop ecx
pop ecx
mov dword [ebp + 0x58], eax
cmp byte [ebp + 0x3d], bl
je 0x44890c
push dword [ebp + 0x58]
push edi
call fcn.0040a61e
pop ecx
pop ecx
mov dword [ebp + 0x58], eax
cmp byte [ebp + 0x36], bl
mov dword [ebp + 0x60], ebx
je 0x448941
mov al, byte [0x465092]
push ebx
push ebx
push 0x4001
push 0xffffffffffffffff
mov byte [ebp + 0x44], al
mov byte [ebp + 0x40], al
mov byte [ebp + 0x41], al
push 1
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp + 0x44]
push eax
push edi
call fcn.0041d1a8
add esp, 0x20
mov dword [ebp + 0x60], eax
cmp byte [ebp + 0x3e], bl
je 0x448979
mov al, byte [0x465091]
mov cl, byte [0x465092]
push ebx
push ebx
push 0x4001
push 0xffffffffffffffff
mov byte [ebp + 0x44], al
mov byte [ebp + 0x41], al
push 1
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp + 0x44]
push eax
push edi
mov byte [ebp + 0x40], cl
call fcn.0041d1a8
add esp, 0x20
add dword [ebp + 0x60], eax
cmp byte [ebp + 0x37], bl
je 0x4489b1
mov al, byte [0x465090]
mov cl, byte [0x465092]
push ebx
push ebx
push 0x4001
push 0xffffffffffffffff
mov byte [ebp + 0x44], al
mov byte [ebp + 0x41], al
push 1
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp + 0x44]
push eax
push edi
mov byte [ebp + 0x40], cl
call fcn.0041d1a8
add esp, 0x20
add dword [ebp + 0x60], eax
cmp dword [ebp + 0x60], ebx
je 0x4489c0
push edi
call fcn.00457cb0
pop ecx
mov dword [ebp + 0x58], eax
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x58]
add ecx, eax
add ecx, dword [ebp + 0x5c]
cmp ecx, 0x4001
jae 0x449336
inc dword [ebp + 0x1c]
cmp dword [ebp + 0x1c], 1
jle 0x448a06
cmp eax, ebx
je 0x448a06
cmp dword [ebp + 0x54], edi
jne 0x448a06
mov ecx, dword [ebp + 0x68]
inc eax
push eax
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp + 0x5c]
add eax, ecx
push eax
call fcn.004576b0
mov eax, dword [ebp + 0x24]
add esp, 0xc
add dword [ebp + 0x5c], eax
cmp dword [ebp + 0x58], ebx
je 0x448400
mov eax, dword [ebp + 0x58]
inc eax
push eax
push dword [ebp + 0x54]
jmp 0x448809
mov eax, dword [0x465108]
cmp dword [eax + 0x94], ebx
mov ecx, esi
jne 0x4492df
lea eax, [ebp - 0xa2bc]
push eax
lea eax, [ebp - 0x4378]
push eax
call fcn.0044f2cb
test eax, eax
je 0x449365
cmp byte [ebp + 0x3c], bl
je 0x448a63
push ebx
push ebx
push ebx
push 0x6c
mov ecx, esi
call fcn.0044b395
test eax, eax
je 0x449365
mov dword [esi + 0x4c], edi
mov byte [ebp - 0x4378], bl
lea eax, [ebp + 0x3c]
push eax
push dword [ebp + 0x68]
call fcn.004493d8
test al, al
pop ecx
pop ecx
je 0x448a9a
push dword [ebp + 0x68]
lea eax, [ebp - 0x4378]
push eax
call fcn.00457a80
mov eax, dword [esi + 0x4c]
pop ecx
pop ecx
mov dword [ebp + 0x10], eax
jmp 0x449113
mov edx, dword [ebp + 0x68]
cmp byte [edx], 0x3a
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x60], ebx
jne 0x448bb5
lea eax, [edx + 1]
mov cl, byte [eax]
cmp cl, bl
je 0x448bb5
cmp cl, 0x3a
je 0x448add
push 0x3a
push eax
mov dword [ebp + 0x28], eax
call fcn.00457de0
cmp eax, ebx
pop ecx
pop ecx
jne 0x448ada
mov dword [ebp + 0x50], ebx
jmp 0x448bb5
inc eax
jmp 0x448ae8
lea eax, [edx + 2]
cmp byte [eax], bl
je 0x448bb5
cmp eax, ebx
mov dword [ebp + 0x50], eax
je 0x448bb5
mov edi, eax
mov dword [ebp + 0x54], edi
mov al, byte [edi]
cmp al, bl
je 0x448ba8
cmp al, byte [0x465092]
je 0x448b18
cmp al, 0x3a
je 0x448b18
inc edi
mov al, byte [edi]
cmp al, bl
mov dword [ebp + 0x54], edi
jne 0x448b02
mov al, byte [edi]
cmp al, bl
je 0x448ba8
mov edi, dword [ebp + 0x54]
inc edi
cmp al, 0x3a
jne 0x448b36
cmp byte [edi], al
jne 0x448b9d
mov eax, dword [ebp + 0x54]
mov dword [ebp + 0x60], eax
jmp 0x448b9a
movsx eax, byte [edi]
sub eax, 0x61
je 0x448b76
dec eax
je 0x448b71
sub eax, 4
je 0x448b6c
sub eax, 8
je 0x448b67
sub eax, 4
je 0x448b62
dec eax
dec eax
je 0x448b5d
dec eax
dec eax
jne 0x448b79
mov byte [edi], 0xb
jmp 0x448b79
mov byte [edi], 9
jmp 0x448b79
mov byte [edi], 0xd
jmp 0x448b79
mov byte [edi], 0xa
jmp 0x448b79
mov byte [edi], 0xc
jmp 0x448b79
mov byte [edi], 8
jmp 0x448b79
mov byte [edi], 7
push edi
call fcn.00457cb0
inc eax
push eax
push edi
push dword [ebp + 0x54]
call fcn.00457ea0
mov eax, dword [ebp + 0x54]
add esp, 0x10
cmp byte [eax], 0x3a
jne 0x448b9d
cmp byte [edi], 0x3a
jne 0x448b9d
mov dword [ebp + 0x54], edi
inc dword [ebp + 0x54]
mov edi, dword [ebp + 0x54]
jmp 0x448af8
cmp dword [ebp + 0x60], ebx
jne 0x448bb0
mov dword [ebp + 0x50], ebx
cmp dword [ebp + 0x50], ebx
jne 0x448c14
push 0x45df64
push dword [ebp + 0x68]
call fcn.00457d40
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp + 0x60], eax
je 0x448f07
cmp eax, dword [ebp + 0x68]
jne 0x448bde
cmp byte [eax + 2], 0x3a
jne 0x448bde
inc eax
mov dword [ebp + 0x60], eax
push dword [ebp + 0x60]
push dword [ebp + 0x68]
call fcn.00439a59
pop ecx
pop ecx
push ebx
mov edi, eax
mov al, byte [edi]
push ebx
push dword [ebp + 0x68]
mov byte [ebp + 0x4b], al
mov byte [edi], bl
call fcn.00401ea8
pop ecx
push eax
call fcn.00410c74
add esp, 0xc
test eax, eax
jne 0x448c0f
mov dword [ebp + 0x60], ebx
mov al, byte [ebp + 0x4b]
mov byte [edi], al
cmp dword [ebp + 0x60], ebx
je 0x448f07
mov eax, dword [ebp + 0x68]
cmp dword [ebp + 0x60], eax
jbe 0x448f07
mov eax, dword [0x465108]
cmp dword [eax + 0x94], ebx
jne 0x4492ed
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x448c4a
cmp byte [eax], 0x1b
je 0x4492f7
mov eax, dword [ebp + 0x60]
add dword [ebp + 0x60], 2
cmp dword [ebp + 0x50], ebx
mov byte [eax], bl
jne 0x448dda
mov edi, dword [ebp + 0x60]
push 0xffffffffffffffff
push edi
call fcn.0040a61e
push 0xffffffffffffffff
push dword [ebp + 0x68]
call fcn.0040a66d
add esp, 0x10
cmp byte [edi], bl
mov dword [ebp + 0x54], edi
je 0x448dda
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.00410faf
mov edi, dword [sym.imp.USER32.dll_GetKeyboardLayout]
add esp, 0xc
push ebx
mov dword [ebp + 0x5c], eax
call edi
push eax
push 1
push ebx
push ebx
push dword [ebp + 0x5c]
call fcn.00415b93
add esp, 0x14
cmp al, bl
mov byte [ebp + 4], al
je 0x448dda
mov eax, dword [ebp + 0x60]
cmp byte [eax + 1], bl
je 0x448ce1
push ebx
push ebx
push eax
call fcn.00410faf
add esp, 0xc
push ebx
mov dword [ebp + 0x54], eax
call edi
push eax
push 1
push ebx
push ebx
push dword [ebp + 0x54]
call fcn.00415b93
add esp, 0x14
mov byte [ebp + 0x38], al
jmp 0x448ce5
mov byte [ebp + 0x38], 0xff
cmp byte [ebp + 0x38], bl
je 0x448dda
push dword [ebp + 0x38]
call fcn.00445190
push dword [ebp + 4]
mov byte [ebp + 0x4a], al
call fcn.00445190
test al, al
pop ecx
pop ecx
jne 0x448d10
cmp byte [ebp + 0x4a], bl
mov byte [ebp + 0x35], 1
jne 0x448d13
mov byte [ebp + 0x35], bl
mov edi, dword [ebp + 0x5c]
push edi
call fcn.00457cb0
cmp eax, 1
pop ecx
jne 0x448d36
xor eax, eax
mov al, byte [edi]
push eax
call dword [sym.imp.USER32.dll_IsCharUpperA]
test eax, eax
mov eax, 0x45e2c4
jne 0x448d3b
mov eax, 0x45a5d8
push dword [ebp + 0x68]
push eax
push 0x45e2bc
lea eax, [ebp - 0x170]
push 0x20
push eax
call fcn.0040a6d3
push 0x20
push dword [ebp + 0x54]
lea eax, [ebp - 0x3c]
push eax
call fcn.00439851
push 8
push dword [ebp + 0x60]
lea eax, [ebp - 0xc]
push eax
call fcn.00439851
mov eax, dword [ebp + 0x54]
sub eax, dword [ebp + 0x60]
add esp, 0x2c
cmp eax, 8
jae 0x448d80
mov byte [ebp + eax - 0xc], bl
cmp byte [ebp - 0xc], bl
mov dword [ebp + 0x2c], ebx
jne 0x449113
movzx eax, byte [ebp + 0x38]
sub eax, 0xd
je 0x448dbf
sub eax, 4
je 0x448da7
dec eax
dec eax
je 0x448dd7
sub eax, 0x4c
jne 0x449113
push 0x45bfa8
push dword [ebp + 0x60]
call fcn.00439b0d
test eax, eax
pop ecx
pop ecx
jne 0x448dd7
jmp 0x449113
lea eax, [ebp - 0x3c]
push 0x45b2d8
push eax
call fcn.00442502
test eax, eax
pop ecx
pop ecx
jne 0x449113
mov byte [ebp + 0x38], bl
cmp byte [esi + 0x50], bl
je 0x448e00
push ebx
push 0xff
push ebx
push 0x66
mov ecx, esi
mov byte [esi + 0x50], bl
call fcn.0044b395
test eax, eax
je 0x449365
mov dword [esi + 0x23c], ebx
push 1
push dword [ebp + 0x68]
mov ecx, esi
call fcn.0044fadc
test eax, eax
je 0x449365
mov edi, dword [ebp + 0x60]
cmp byte [edi], bl
mov dword [ebp + 0x54], ebx
je 0x448e6e
cmp dword [ebp + 0x50], ebx
jne 0x448e5a
push ebx
push edi
call fcn.00410401
cmp ax, bx
pop ecx
pop ecx
mov dword [ebp + 0x54], eax
jne 0x448e5a
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push edi
call fcn.004493d8
neg al
sbb al, al
pop ecx
pop ecx
mov ecx, esi
and eax, 3
push eax
push edi
call fcn.00449d8e
test eax, eax
je 0x449365
push ebx
push ebx
push ebx
push 0x66
mov ecx, esi
call fcn.0044b395
test eax, eax
je 0x449365
mov ecx, dword [ebp + 0x50]
cmp ecx, ebx
je 0x448e99
cmp byte [ecx], bl
je 0x44930a
mov eax, dword [ebp + 0x28]
cmp eax, ebx
jne 0x448e89
mov eax, 0x45a5d8
push dword [ebp + 8]
push edi
push ecx
push eax
push dword [esi + 0x10]
call fcn.0040f8c1
jmp 0x448eff
lea eax, [ebp + 0xc]
push eax
push dword [ebp + 0x68]
call fcn.00410b93
mov edi, eax
cmp edi, ebx
pop ecx
pop ecx
je 0x448eef
mov eax, dword [ebp + 0x54]
cmp ax, bx
je 0x448ebe
mov word [edi + 2], ax
jmp 0x449113
mov ecx, edi
call fcn.00411aec
test eax, eax
jne 0x449314
push dword [ebp + 0xc]
mov ecx, edi
push dword [esi + 0x10]
call fcn.004119b4
test eax, eax
jne 0x449113
push dword [ebp + 0x68]
push 0x45bd50
jmp 0x4492d3
push ebx
push dword [ebp + 0xc]
push ebx
push dword [ebp + 0x54]
push dword [esi + 0x10]
call fcn.00410376
add esp, 0x14
jmp 0x44910b
mov edx, dword [ebp + 0x5c]
mov edi, dword [ebp + 0x68]
cmp byte [edx + edi - 1], 0x3a
jne 0x448fe2
cmp edx, 1
je 0x449324
mov al, byte [edi]
cmp al, bl
mov ecx, edi
je 0x448f5b
cmp al, 0x20
je 0x448fe2
cmp al, 9
je 0x448fe2
cmp al, byte [0x465090]
je 0x448fe2
cmp al, byte [0x465092]
je 0x448fe2
inc ecx
mov al, byte [ecx]
cmp al, bl
jne 0x448f29
mov edx, dword [ebp + 0x5c]
cmp byte [edx + edi - 2], 0x3a
jne 0x448fc4
cmp edx, 2
jbe 0x448fc4
cmp byte [esi + 0x50], bl
je 0x448f8d
push ebx
push 0xff
push ebx
push 0x66
mov ecx, esi
mov byte [esi + 0x50], bl
call fcn.0044b395
test eax, eax
je 0x449365
mov dword [esi + 0x23c], ebx
push edi
push 0x45e258
lea eax, [ebp - 0x374]
push 0x204
push eax
call fcn.0040a6d3
fldz
add esp, 0x10
push ebx
push ecx
push ecx
fstp qword [esp]
push ebx
lea eax, [ebp - 0x374]
push 0x10000
push eax
call fcn.0043c205
add esp, 0x18
mov eax, dword [ebp + 0x5c]
dec eax
push eax
push edi
mov byte [eax + edi], bl
call fcn.0040a66d
pop ecx
pop ecx
push ebx
push edi
mov ecx, esi
call fcn.0044fadc
jmp 0x44910b
cmp byte [edi], 0x23
jne 0x449013
mov eax, dword [esi + 0x4c]
push edi
mov ecx, esi
mov dword [ebp + 0x28], eax
call fcn.0044947c
cmp eax, ebx
je 0x449365
cmp eax, 3
jne 0x449013
mov eax, dword [ebp]
mov dword [esi + 0x48], eax
mov eax, dword [ebp + 0x28]
mov dword [esi + 0x4c], eax
jmp 0x449113
cmp byte [edi], 0x7d
jne 0x44904b
push ebx
push ebx
push ebx
push 0x6d
mov ecx, esi
call fcn.0044b395
test eax, eax
je 0x449365
inc edi
push edi
call fcn.00401ea8
cmp byte [eax], bl
pop ecx
mov dword [ebp + 0x68], eax
je 0x449113
mov edi, eax
push edi
call fcn.00457cb0
pop ecx
mov dword [ebp + 0x5c], eax
push 0x45e250
push edi
call fcn.00439b0d
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp + 0x50], eax
jne 0x449067
mov eax, dword [ebp + 0x5c]
add eax, edi
mov dword [ebp + 0x50], eax
mov eax, dword [ebp + 0x50]
push 0xffffffffffffffff
sub eax, edi
push eax
push 0x45b6dc
push edi
call fcn.00439871
add esp, 0x10
test eax, eax
push ebx
push ebx
mov ecx, esi
push ebx
je 0x4490b5
cmp byte [edi], 0x7b
jne 0x4490b0
push 0x6c
call fcn.0044b395
test eax, eax
je 0x449365
inc edi
push edi
call fcn.00401ea8
mov edi, eax
cmp byte [edi], bl
pop ecx
je 0x449113
mov dword [esi + 0x23c], ebx
jmp 0x4490ed
push ebx
push ebx
push ebx
jmp 0x449105
push 9
call fcn.0044b395
test eax, eax
je 0x449365
push dword [ebp + 0x50]
mov dword [esi + 0x23c], ebx
call fcn.00401ea8
mov edi, eax
mov al, byte [edi]
cmp al, byte [0x465090]
pop ecx
jne 0x4490e9
inc edi
push edi
call fcn.00401ea8
pop ecx
mov edi, eax
cmp byte [edi], bl
je 0x449113
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push edi
call fcn.004493d8
neg al
sbb al, al
pop ecx
pop ecx
mov ecx, esi
and eax, 3
push eax
push edi
call fcn.00449d8e
test eax, eax
je 0x449365
cmp byte [ebp + 0x38], bl
je 0x4492a1
inc dword [ebp + 0x2c]
mov eax, dword [ebp + 0x2c]
dec eax
je 0x449229
dec eax
je 0x44916d
dec eax
je 0x449248
sub eax, 7
jne 0x4492a1
cmp byte [ebp + 0x38], 0x12
mov ecx, 0x45a5d8
je 0x449153
cmp byte [ebp + 0x38], 0xa3
jbe 0x4491c0
cmp byte [ebp + 0x38], 0xa5
ja 0x4491c0
movzx eax, byte [ebp + 4]
sub eax, 0x11
je 0x4491bb
sub eax, 0x91
je 0x4491bb
dec eax
jne 0x4491c0
mov ecx, 0x45e244
jmp 0x4491c0
push 0x45e240
push dword [ebp + 0x68]
call fcn.00457a80
cmp byte [ebp + 0x4a], bl
pop ecx
pop ecx
push ebx
lea eax, [ebp + 0x68]
push 1
push eax
setne al
add al, 0xb9
mov ecx, esi
push eax
call fcn.0044b395
cmp byte [ebp + 0x35], bl
je 0x44913c
lea eax, [ebp - 0x3c]
push eax
push 0x45e224
push dword [ebp + 0x68]
call fcn.0040a7af
add esp, 0xc
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x2c], 9
jmp 0x448a9a
mov ecx, 0x45e218
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0xc]
push eax
push ecx
push 0x45e1fc
push dword [ebp + 0x68]
mov dword [esi + 0x23c], ebx
call fcn.0040a7af
add esp, 0x14
push ebx
push 1
lea eax, [ebp + 0x68]
push eax
push 0x41
mov ecx, esi
call fcn.0044b395
test eax, eax
mov ecx, esi
je 0x449367
push ebx
push ebx
push ebx
push 0x66
call fcn.0044b395
lea eax, [ebp - 0x170]
push eax
push 0x45e1f0
push dword [ebp + 0x68]
call fcn.0040a7af
add esp, 0xc
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x2c], 2
jmp 0x448a9a
lea eax, [ebp - 0x170]
push eax
push 0x45e1e8
push dword [ebp + 0x68]
call fcn.0040a7af
add esp, 0xc
mov dword [ebp + 0x5c], eax
jmp 0x448a9a
push 0x45e240
push dword [ebp + 0x68]
call fcn.00457a80
cmp byte [ebp + 0x4a], bl
pop ecx
pop ecx
push ebx
lea eax, [ebp + 0x68]
push 1
push eax
setne al
add al, 0xb9
mov ecx, esi
push eax
call fcn.0044b395
lea eax, [ebp - 0x3c]
push eax
push 0x45e1d8
push dword [ebp + 0x68]
call fcn.0040a7af
add esp, 0xc
push ebx
push 1
lea eax, [ebp + 0x68]
push eax
push 0x41
mov ecx, esi
call fcn.0044b395
push ebx
push ebx
push ebx
push 0x66
mov ecx, esi
call fcn.0044b395
mov byte [ebp + 0x38], bl
mov ecx, dword [ebp + 0x58]
mov eax, dword [ebp + 0x4c]
mov dword [ebp + 0x5c], ecx
lea ecx, [ebp - 0x837c]
cmp eax, ecx
mov dword [ebp + 0x68], eax
jne 0x4492c5
lea eax, [ebp - 0xe2c0]
mov dword [ebp + 0x4c], eax
jmp 0x4483b8
lea eax, [ebp - 0x837c]
jmp 0x4492bd
push edi
push 0x45e1b8
mov ecx, esi
call fcn.0044c37d
jmp 0x449365
lea eax, [ebp - 0x4378]
push eax
push 0x45e194
jmp 0x4492d5
push dword [ebp + 0x68]
push 0x45e15c
jmp 0x4492d3
push dword [ebp + 0x68]
mov eax, dword [esi + 4]
mov dword [esi + 0x23c], eax
push 0x45e144
jmp 0x4492d3
push dword [ebp + 0x68]
push 0x45e118
jmp 0x4492d3
push dword [ebp + 0x68]
mov dword [esi + 0x23c], ebx
push 0x45e104
jmp 0x4492d3
push edi
push 0x45d698
jmp 0x4492d3
push dword [ebp + 0x68]
push 0x45d790
jmp 0x4492d3
push dword [ebp + 0x54]
jmp 0x4492ce
cmp byte [ebp - 0x4378], bl
je 0x44937b
mov eax, dword [ebp + 0x10]
mov edi, dword [esi + 0x4c]
push ebx
push ebx
push ebx
push ebx
push ebx
mov dword [esi + 0x4c], eax
push 3
lea eax, [ebp - 0x4378]
push eax
mov ecx, esi
call fcn.00449d8e
test eax, eax
jne 0x449378
mov ecx, esi
push dword [ebp + 0x64]
lea eax, [ebp - 0x150]
push eax
call fcn.004505f8
jmp 0x4493ce
mov dword [esi + 0x4c], edi
cmp dword [ebp + 0x14], ebx
je 0x44938f
push dword [ebp + 0x30]
push ebx
push dword [ebp + 0x64]
call fcn.00457b80
add esp, 0xc
push dword [ebp + 0x64]
call fcn.0043ec47
pop ecx
lea ecx, [ebp - 0x150]
call fcn.00450aac
xor eax, eax
inc eax
jmp 0x4493ce
lea ecx, [ebp - 0x150]
call fcn.00450aac
fldz
push ebx
push ecx
push ecx
fstp qword [esp]
push dword [ebp + 0x74]
push ebx
push 0x45e0e0
call fcn.0043c205
add esp, 0x18
xor eax, eax
pop edi
pop esi
pop ebx
add ebp, 0x6c
leave
ret 0xc