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

Disassembly:
push ebp
mov eax, 0xe32c
lea ebp, [esp - 0x6c]
call fcn.004550b0
mov eax, dword [ebp + 0x74]
push ebx
xor ebx, ebx
cmp eax, ebx
push esi
push edi
mov dword [ebp + 0x60], ecx
je 0x4477bb
cmp byte [eax], bl
je 0x4477bb
mov eax, dword [0x46774c]
cmp eax, ebx
mov dword [ebp], eax
jne 0x446632
mov eax, dword [ecx + 0x494]
mov dword [0x467100], eax
xor eax, eax
mov byte [ebp - 0xa2bc], bl
mov ecx, 0x1000
lea edi, [ebp - 0xa2bb]
rep stosd dword es:[edi], eax
push 0x4575d8
push dword [ebp + 0x74]
lea eax, [ebp - 0x62b8]
lea esi, [ebp - 0xe2c0]
lea ecx, [ebp - 0x150]
mov dword [ebp + 0x68], ebx
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x64], eax
mov dword [ebp + 0x2c], esi
call fcn.0044e4fa
test eax, eax
je 0x44668c
push ebx
fldz
push ecx
push ecx
fstp qword [esp]
push dword [ebp + 0x74]
push ebx
push 0x45b2ac
jmp 0x4477b3
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x68]
push eax
push 0x45b298
lea ecx, [ebp - 0x150]
call fcn.0044e8d2
test eax, eax
jne 0x4466b6
mov edi, dword [ebp + 0x60]
mov byte [edi + 0x4b1], bl
jmp 0x44674c
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x68]
push eax
push 0x45b288
lea ecx, [ebp - 0x150]
call fcn.0044e8d2
test eax, eax
jne 0x4466de
mov edi, dword [ebp + 0x60]
mov byte [edi + 0x4b1], 1
jmp 0x44674c
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x68]
push eax
push 0x458654
lea ecx, [ebp - 0x150]
call fcn.0044e8d2
test eax, eax
jne 0x446705
mov edi, dword [ebp + 0x60]
mov byte [edi + 0x4b1], bl
jmp 0x44672f
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x68]
push eax
push 0x45864c
lea ecx, [ebp - 0x150]
call fcn.0044e8d2
test eax, eax
jne 0x447797
mov edi, dword [ebp + 0x60]
mov byte [edi + 0x4b1], 1
mov dl, byte [ebp + 0x3c]
cmp dl, bl
jne 0x446738
mov dl, 0x40
xor ecx, ecx
cmp dword [ebp + 0x3c], ebx
jbe 0x44674c
mov eax, dword [ebp + 0x68]
add eax, ecx
sub byte [eax], dl
inc ecx
cmp ecx, dword [ebp + 0x3c]
jb 0x44673f
mov eax, dword [ebp + 0x68]
inc dword [0x46774c]
or dword [ebp + 0x10], 0xffffffff
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp]
mov dword [edi + 0x48], eax
mov eax, 0x4000
cmp dword [ebp + 0x3c], eax
mov byte [ebp + 0x37], bl
mov byte [ebp + 0x49], bl
mov byte [ebp + 0x46], bl
jg 0x446778
mov eax, dword [ebp + 0x3c]
lea ecx, [ebp + 0x1c]
push ecx
push ebx
push eax
lea eax, [ebp - 0x62b8]
push eax
mov ecx, edi
call fcn.0044e243
push 2
mov dword [ebp + 0x58], eax
lea eax, [ebp - 0x62b8]
push 0x45b284
push eax
call fcn.00455380
add esp, 0xc
neg eax
sbb al, al
inc al
mov byte [ebp + 0x77], al
je 0x4467b9
mov byte [ebp - 0x62b8], bl
mov dword [ebp + 0x58], ebx
cmp dword [ebp + 0x58], 0xffffffff
je 0x44773b
mov eax, dword [ebp + 0x10]
push 0xc
push 0x45a430
push dword [ebp + 0x64]
inc eax
mov dword [edi + 0x4c], eax
mov dword [edi + 0x23c], ebx
call fcn.00441494
add esp, 0xc
test eax, eax
jne 0x4467f8
push dword [ebp + 0x64]
mov ecx, edi
call fcn.0044784b
test eax, eax
je 0x447765
mov byte [ebp + 4], bl
mov dword [ebp + 0x54], ebx
mov eax, dword [ebp + 0x3c]
sub eax, dword [ebp + 0x1c]
inc dword [ebp + 0x10]
add eax, dword [ebp + 0x68]
mov ecx, 0x4000
cmp eax, ecx
jle 0x446815
mov eax, ecx
lea ecx, [ebp + 0x1c]
push ecx
push dword [ebp + 0x54]
mov ecx, dword [ebp + 0x60]
push eax
push esi
call fcn.0044e243
mov edi, eax
cmp edi, ebx
mov dword [ebp + 0x18], edi
je 0x446996
cmp edi, 0xffffffff
je 0x446996
cmp byte [ebp + 0x77], bl
je 0x44696c
push 2
push 0x45b280
push esi
call fcn.00455380
add esp, 0xc
test eax, eax
jne 0x4467fe
dec edi
dec edi
lea eax, [edi + 1]
push eax
lea eax, [esi + 2]
push eax
push esi
mov byte [ebp + 0x77], bl
call fcn.00454d00
push edi
push esi
call fcn.00409b72
add esp, 0x14
cmp byte [esi], bl
mov edi, eax
mov dword [ebp + 0x18], edi
je 0x4467fe
cmp dword [ebp + 0x54], ebx
jne 0x446ca6
cmp edi, 0xffffffff
je 0x446a06
cmp byte [esi], 0x28
jne 0x446a06
lea eax, [esi + 1]
cmp byte [eax], 0x3a
je 0x446a06
cmp byte [edi + esi - 1], 0x3a
je 0x446a06
mov cl, byte [0x464cf0]
push eax
mov dword [ebp + 0x54], 1
mov byte [ebp + 4], 1
mov dword [ebp + 0x14], ebx
mov byte [ebp + 0x33], cl
mov byte [ebp + 0x35], 1
mov byte [ebp + 0x32], bl
mov byte [ebp + 0x3b], bl
mov byte [ebp + 0x34], 1
mov byte [ebp - 0x1c], 0xa
mov byte [ebp - 0x1b], bl
mov dword [ebp + 0x20], 1
call fcn.00401a22
mov edi, eax
cmp byte [edi], bl
pop ecx
je 0x4467fe
push 0x458be0
push edi
call fcn.00438b79
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
jne 0x446917
push edi
call fcn.00454b10
mov esi, eax
pop ecx
add esi, edi
mov al, byte [esi]
push 4
push 0x45b278
push edi
mov byte [ebp + 0x4e], al
mov byte [esi], bl
call fcn.00441494
add esp, 0xc
test eax, eax
jne 0x446c19
push 0x10
add edi, 4
lea eax, [ebp - 0x1c]
push edi
push eax
call fcn.004388bd
xor eax, eax
mov al, byte [0x46208e]
push 1
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.004378c4
lea eax, [ebp - 0x1c]
push eax
call fcn.00454b10
add esp, 0x1c
mov dword [ebp + 0x20], eax
jmp 0x446c88
cmp dword [ebp + 0x54], ebx
jne 0x446ca6
push 2
push 0x45b284
push esi
call fcn.00455380
add esp, 0xc
test eax, eax
jne 0x44688c
mov byte [ebp + 0x77], 1
jmp 0x4467fe
cmp byte [ebp + 0x77], bl
je 0x446883
cmp edi, 0xffffffff
jne 0x4467fe
cmp dword [ebp + 0x58], ebx
je 0x4474fd
cmp byte [ebp - 0xa2bc], bl
mov esi, dword [ebp + 0x60]
je 0x446e50
mov eax, dword [ebp + 0xc]
mov edi, dword [esi + 0x4c]
mov dword [esi + 0x4c], eax
mov eax, dword [ebp + 0x64]
cmp byte [eax], 0x7b
je 0x446e05
cmp byte [ebp + 0x36], bl
jne 0x446e05
push ebx
push ebx
push ebx
push ebx
push ebx
push 3
lea eax, [ebp - 0xa2bc]
push eax
mov ecx, esi
call fcn.0044815c
test eax, eax
je 0x447765
mov dword [esi + 0x23c], ebx
jmp 0x446e47
cmp edi, 0xffffffff
mov dword [ebp + 0x54], ebx
je 0x4469a8
cmp edi, ebx
je 0x4467fe
cmp byte [edi + esi - 1], 0x3a
jne 0x446a22
cmp byte [esi], 0x2c
jne 0x4469a8
movsx eax, byte [esi]
push eax
call fcn.004418df
cmp eax, 0x41
pop ecx
je 0x446b8a
cmp eax, 0x4f
je 0x446b71
mov cl, byte [esi]
cmp cl, 0x3a
je 0x446a4f
cmp cl, 0x2b
je 0x446a4f
cmp cl, 0x2d
jne 0x446a58
cmp byte [esi + 1], cl
je 0x4469a8
cmp cl, 0x2e
je 0x446a62
cmp cl, 0x3f
jne 0x446a79
mov al, byte [esi + 1]
cmp al, 0x20
je 0x446a79
cmp al, 9
je 0x446a79
cmp al, 0xa0
je 0x446a79
cmp al, 0x3d
jne 0x4469a8
movsx eax, cl
push eax
push 0x45b264
call fcn.00454c40
test eax, eax
pop ecx
pop ecx
je 0x4469a8
push 0x45aecc
push esi
call fcn.00454ba0
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp + 0x5c], eax
je 0x446bd9
cmp byte [esi], 0x3a
jne 0x446af2
lea edi, [esi + 1]
jmp 0x446ade
cmp al, 0x3a
je 0x4469a8
movsx eax, al
push eax
call fcn.0043bc22
test eax, eax
pop ecx
jne 0x446add
movsx eax, byte [edi]
push eax
push 0x45b25c
call fcn.00454c40
test eax, eax
pop ecx
pop ecx
je 0x446aec
inc edi
mov al, byte [edi]
cmp al, bl
jne 0x446ab3
cmp al, 0x3a
je 0x4469a8
mov eax, dword [ebp + 0x5c]
mov edi, dword [ebp + 0x18]
cmp byte [esi], 0x2c
jne 0x446b3c
lea eax, [esi + 1]
push eax
call fcn.00401a22
push 2
push 0x45aecc
push eax
mov dword [ebp + 0x5c], eax
call fcn.00455380
add esp, 0x10
test eax, eax
je 0x4469a8
mov eax, dword [ebp + 0x5c]
push 3
dec eax
push 0x458b44
push eax
call fcn.00455380
add esp, 0xc
test eax, eax
je 0x4469a8
jmp 0x446bd9
cmp esi, eax
mov ecx, esi
jae 0x446b4c
cmp byte [ecx], 0x22
je 0x446b4c
inc ecx
cmp ecx, eax
jb 0x446b42
cmp ecx, eax
je 0x4469a8
add eax, 2
mov cl, byte [eax]
cmp cl, bl
je 0x4469a8
cmp cl, 0x22
je 0x446b6d
inc eax
mov cl, byte [eax]
cmp cl, bl
jne 0x446b61
cmp byte [eax], bl
jmp 0x446b31
movsx eax, byte [esi + 1]
push eax
call fcn.004418df
cmp eax, 0x52
pop ecx
jne 0x4469a8
lea eax, [esi + 2]
jmp 0x446ba5
push 3
push 0x45af14
push esi
call fcn.00441494
add esp, 0xc
test eax, eax
jne 0x4469a8
lea eax, [esi + 3]
mov cl, byte [eax]
cmp cl, 0x20
je 0x446bba
cmp cl, 9
je 0x446bba
cmp cl, 0xa0
jne 0x4469a8
push eax
call fcn.00401a22
movsx eax, byte [eax]
push eax
push 0x45b250
call fcn.00454c40
add esp, 0xc
test eax, eax
jne 0x4469a8
mov eax, dword [ebp + 0x58]
lea ecx, [edi + eax]
cmp ecx, 0x4000
jae 0x4476c3
cmp byte [esi], 0x2c
je 0x446bfb
mov ecx, dword [ebp + 0x64]
mov byte [eax + ecx], 0x20
inc eax
mov dword [ebp + 0x58], eax
lea eax, [edi + 1]
push eax
push esi
mov ecx, dword [ebp + 0x64]
mov eax, dword [ebp + 0x58]
add eax, ecx
push eax
call fcn.00454510
add esp, 0xc
add dword [ebp + 0x58], edi
jmp 0x4467fe
push 5
push 0x45b248
push edi
call fcn.00441494
add esp, 0xc
test eax, eax
jne 0x446c37
cmp byte [edi + 5], 0x30
setne byte [ebp + 0x33]
jmp 0x446c88
push 5
push 0x45b240
push edi
call fcn.00441494
add esp, 0xc
test eax, eax
jne 0x446c82
cmp byte [edi + 5], 0x30
setne byte [ebp + 0x35]
jmp 0x446c88
cmp al, 0x25
je 0x446c7d
cmp al, 0x2c
je 0x446c78
cmp al, 0x43
je 0x446c69
cmp al, 0x60
je 0x446c72
cmp al, 0x63
jne 0x446c81
mov dword [ebp + 0x54], 2
jmp 0x446c81
mov byte [ebp + 0x32], 1
jmp 0x446c81
mov byte [ebp + 0x34], bl
jmp 0x446c81
mov byte [ebp + 0x3b], 1
inc edi
mov al, byte [edi]
cmp al, bl
jne 0x446c55
mov al, byte [ebp + 0x4e]
push esi
mov byte [esi], al
call fcn.00401a22
mov edi, eax
cmp byte [edi], bl
pop ecx
jne 0x4468f9
mov esi, dword [ebp + 0x2c]
jmp 0x4467fe
cmp edi, 0xffffffff
je 0x44772c
cmp edi, 0xfffffffe
je 0x4467fe
cmp byte [esi], 0x29
jne 0x446cd7
lea eax, [esi + 1]
push 0xffffffffffffffff
push esi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x5c], eax
call fcn.00409bc1
mov edi, eax
pop ecx
dec edi
jmp 0x446dac
cmp byte [ebp + 0x35], bl
mov dword [ebp + 0x5c], esi
je 0x446cea
push edi
push esi
call fcn.00409bc1
pop ecx
pop ecx
mov edi, eax
cmp byte [ebp + 0x33], bl
je 0x446cfa
push edi
push esi
call fcn.00409b72
pop ecx
pop ecx
mov edi, eax
cmp byte [ebp + 0x32], bl
mov dword [ebp + 0x50], ebx
je 0x446d2f
mov al, byte [0x46208e]
push ebx
push ebx
push 0x4001
push 0xffffffffffffffff
mov byte [ebp + 0x48], al
mov byte [ebp + 0x44], al
mov byte [ebp + 0x45], al
push 1
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x48]
push eax
push esi
call fcn.0041a2c1
add esp, 0x20
mov dword [ebp + 0x50], eax
cmp byte [ebp + 0x3b], bl
je 0x446d67
mov al, byte [0x46208d]
mov cl, byte [0x46208e]
push ebx
push ebx
push 0x4001
push 0xffffffffffffffff
mov byte [ebp + 0x48], al
mov byte [ebp + 0x45], al
push 1
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x48]
push eax
push esi
mov byte [ebp + 0x44], cl
call fcn.0041a2c1
add esp, 0x20
add dword [ebp + 0x50], eax
cmp byte [ebp + 0x34], bl
je 0x446d9f
mov al, byte [0x46208c]
mov cl, byte [0x46208e]
push ebx
push ebx
push 0x4001
push 0xffffffffffffffff
mov byte [ebp + 0x48], al
mov byte [ebp + 0x45], al
push 1
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x48]
push eax
push esi
mov byte [ebp + 0x44], cl
call fcn.0041a2c1
add esp, 0x20
add dword [ebp + 0x50], eax
cmp dword [ebp + 0x50], ebx
je 0x446dad
push esi
call fcn.00454b10
mov edi, eax
pop ecx
mov eax, dword [ebp + 0x20]
lea ecx, [eax + edi]
add ecx, dword [ebp + 0x58]
cmp ecx, 0x4001
jae 0x447736
inc dword [ebp + 0x14]
cmp dword [ebp + 0x14], 1
jle 0x446df1
cmp eax, ebx
je 0x446df1
cmp dword [ebp + 0x5c], esi
jne 0x446df1
mov ecx, dword [ebp + 0x64]
inc eax
push eax
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp + 0x58]
add eax, ecx
push eax
call fcn.00454510
mov eax, dword [ebp + 0x20]
add esp, 0xc
add dword [ebp + 0x58], eax
cmp edi, ebx
je 0x4467fe
lea eax, [edi + 1]
push eax
push dword [ebp + 0x5c]
jmp 0x446c00
cmp dword [0x46428c], ebx
mov ecx, esi
jne 0x4476d6
lea eax, [ebp - 0x22b4]
push eax
lea eax, [ebp - 0xa2bc]
push eax
call fcn.0044c4f2
test eax, eax
je 0x447765
cmp byte [ebp + 0x36], bl
je 0x446e47
push ebx
push ebx
push ebx
push 0x6b
mov ecx, esi
call fcn.00449691
test eax, eax
je 0x447765
mov dword [esi + 0x4c], edi
mov byte [ebp - 0xa2bc], bl
lea eax, [ebp + 0x36]
push eax
push dword [ebp + 0x64]
call fcn.004477c7
test al, al
pop ecx
pop ecx
je 0x446e7e
push dword [ebp + 0x64]
lea eax, [ebp - 0xa2bc]
push eax
call fcn.004548e0
mov eax, dword [esi + 0x4c]
pop ecx
pop ecx
mov dword [ebp + 0xc], eax
jmp 0x4474fd
mov edx, dword [ebp + 0x64]
cmp byte [edx], 0x3a
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x5c], ebx
jne 0x446f80
lea eax, [edx + 1]
mov cl, byte [eax]
cmp cl, bl
je 0x446f80
cmp cl, 0x3a
je 0x446ec1
push 0x3a
push eax
mov dword [ebp + 0x24], eax
call fcn.00454c40
cmp eax, ebx
pop ecx
pop ecx
jne 0x446ebe
mov dword [ebp + 0x54], ebx
jmp 0x446f80
inc eax
jmp 0x446ecc
lea eax, [edx + 2]
cmp byte [eax], bl
je 0x446f80
cmp eax, ebx
mov dword [ebp + 0x54], eax
je 0x446f80
mov esi, eax
mov al, byte [esi]
cmp al, bl
je 0x446f73
cmp al, byte [0x46208e]
je 0x446ef6
cmp al, 0x3a
je 0x446ef6
inc esi
mov al, byte [esi]
cmp al, bl
jne 0x446ee3
mov al, byte [esi]
cmp al, bl
je 0x446f73
cmp al, 0x3a
lea edi, [esi + 1]
jne 0x446f0c
cmp byte [edi], al
jne 0x446f6d
mov dword [ebp + 0x5c], esi
jmp 0x446f6b
movsx eax, byte [edi]
sub eax, 0x61
je 0x446f4c
dec eax
je 0x446f47
sub eax, 4
je 0x446f42
sub eax, 8
je 0x446f3d
sub eax, 4
je 0x446f38
dec eax
dec eax
je 0x446f33
dec eax
dec eax
jne 0x446f4f
mov byte [edi], 0xb
jmp 0x446f4f
mov byte [edi], 9
jmp 0x446f4f
mov byte [edi], 0xd
jmp 0x446f4f
mov byte [edi], 0xa
jmp 0x446f4f
mov byte [edi], 0xc
jmp 0x446f4f
mov byte [edi], 8
jmp 0x446f4f
mov byte [edi], 7
push edi
call fcn.00454b10
inc eax
push eax
push edi
push esi
call fcn.00454d00
add esp, 0x10
cmp byte [esi], 0x3a
jne 0x446f6d
cmp byte [edi], 0x3a
jne 0x446f6d
mov esi, edi
inc esi
jmp 0x446ed9
cmp dword [ebp + 0x5c], ebx
jne 0x446f7b
mov dword [ebp + 0x54], ebx
cmp dword [ebp + 0x54], ebx
jne 0x446fd9
mov esi, dword [ebp + 0x64]
push 0x45aecc
push esi
call fcn.00454ba0
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp + 0x5c], eax
je 0x4472c6
cmp eax, esi
jne 0x446fa9
cmp byte [eax + 2], 0x3a
jne 0x446fa9
inc eax
mov dword [ebp + 0x5c], eax
push eax
push esi
call fcn.00438ac5
pop ecx
pop ecx
mov edi, eax
mov al, byte [edi]
push ebx
push ebx
push esi
mov byte [ebp + 0x4e], al
mov byte [edi], bl
call fcn.00401a22
pop ecx
push eax
call fcn.0040e4e5
add esp, 0xc
test eax, eax
jne 0x446fd4
mov dword [ebp + 0x5c], ebx
mov al, byte [ebp + 0x4e]
mov byte [edi], al
cmp dword [ebp + 0x5c], ebx
je 0x4472c6
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x5c], eax
jbe 0x4472c6
cmp dword [0x46428c], ebx
jne 0x4476e4
mov eax, dword [ebp + 0x60]
mov eax, dword [eax + 4]
cmp eax, ebx
je 0x44700d
cmp byte [eax], 0x1b
je 0x4476ee
mov eax, dword [ebp + 0x5c]
add dword [ebp + 0x5c], 2
cmp dword [ebp + 0x54], ebx
mov edi, dword [ebp + 0x5c]
mov byte [eax], bl
jne 0x447195
push 0xffffffffffffffff
push edi
call fcn.00409b72
push 0xffffffffffffffff
push dword [ebp + 0x64]
call fcn.00409bc1
add esp, 0x10
cmp byte [edi], bl
mov dword [ebp + 0x5c], edi
je 0x447195
push ebx
push ebx
push dword [ebp + 0x64]
call fcn.0040e81c
mov esi, dword [sym.imp.USER32.dll_GetKeyboardLayout]
add esp, 0xc
push ebx
mov dword [ebp + 0x50], eax
call esi
push eax
push 1
push ebx
push ebx
push dword [ebp + 0x50]
call fcn.0041311e
add esp, 0x14
cmp al, bl
mov byte [ebp + 8], al
je 0x447195
cmp byte [edi + 1], bl
je 0x4470a1
push ebx
push ebx
push edi
call fcn.0040e81c
add esp, 0xc
push ebx
mov dword [ebp + 0x5c], eax
call esi
push eax
push 1
push ebx
push ebx
push dword [ebp + 0x5c]
call fcn.0041311e
add esp, 0x14
mov byte [ebp + 0x37], al
jmp 0x4470a5
mov byte [ebp + 0x37], 0xff
cmp byte [ebp + 0x37], bl
je 0x447195
push dword [ebp + 0x37]
call fcn.004440ce
push dword [ebp + 8]
mov byte [ebp + 0x4f], al
call fcn.004440ce
test al, al
pop ecx
pop ecx
jne 0x4470d0
cmp byte [ebp + 0x4f], bl
mov byte [ebp + 0x43], 1
jne 0x4470d3
mov byte [ebp + 0x43], bl
mov esi, dword [ebp + 0x50]
push esi
call fcn.00454b10
cmp eax, 1
pop ecx
jne 0x4470f6
xor eax, eax
mov al, byte [esi]
push eax
call dword [sym.imp.USER32.dll_IsCharUpperA]
test eax, eax
mov eax, 0x45b23c
jne 0x4470fb
mov eax, 0x4575d8
push dword [ebp + 0x64]
push eax
push 0x45b234
lea eax, [ebp - 0x170]
push 0x20
push eax
call fcn.00409c27
push 0x20
push dword [ebp + 0x5c]
lea eax, [ebp - 0x3c]
push eax
call fcn.004388bd
push 8
lea eax, [ebp - 0xc]
push edi
push eax
call fcn.004388bd
mov eax, dword [ebp + 0x5c]
sub eax, edi
add esp, 0x2c
cmp eax, 8
jae 0x44713d
mov byte [ebp + eax - 0xc], bl
cmp byte [ebp - 0xc], bl
mov dword [ebp + 0x28], ebx
jne 0x4474fd
movzx eax, byte [ebp + 0x37]
sub eax, 0xd
je 0x44717a
sub eax, 4
je 0x447164
dec eax
dec eax
je 0x447192
sub eax, 0x4c
jne 0x4474fd
push 0x458f68
push edi
call fcn.00438b79
test eax, eax
pop ecx
pop ecx
jne 0x447192
jmp 0x4474fd
lea eax, [ebp - 0x3c]
push 0x4582a0
push eax
call fcn.00441451
test eax, eax
pop ecx
pop ecx
jne 0x4474fd
mov byte [ebp + 0x37], bl
mov esi, dword [ebp + 0x60]
cmp byte [esi + 0x50], bl
je 0x4471be
push ebx
push 0xff
push ebx
push 0x66
mov ecx, esi
mov byte [esi + 0x50], bl
call fcn.00449691
test eax, eax
je 0x447765
mov dword [esi + 0x23c], ebx
push 1
push dword [ebp + 0x64]
mov ecx, esi
call fcn.0044d737
test eax, eax
je 0x447765
cmp byte [edi], bl
mov dword [ebp + 0x50], ebx
je 0x447229
cmp dword [ebp + 0x54], ebx
jne 0x447215
push ebx
push edi
call fcn.0040dc7e
cmp ax, bx
pop ecx
pop ecx
mov dword [ebp + 0x50], eax
jne 0x447215
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push edi
call fcn.004477c7
neg al
sbb al, al
pop ecx
pop ecx
mov ecx, esi
and eax, 3
push eax
push edi
call fcn.0044815c
test eax, eax
je 0x447765
push ebx
push ebx
push ebx
push 0x66
mov ecx, esi
call fcn.00449691
test eax, eax
je 0x447765
mov eax, dword [ebp + 0x54]
cmp eax, ebx
je 0x447256
cmp byte [eax], bl
je 0x447704
mov eax, dword [ebp + 0x24]
cmp eax, ebx
jne 0x447244
mov eax, 0x4575d8
push dword [ebp + 4]
push edi
push dword [ebp + 0x54]
push eax
push dword [esi + 0x10]
call fcn.0040d124
jmp 0x4472be
lea eax, [ebp - 4]
push eax
push dword [ebp + 0x64]
call fcn.0040e404
mov edi, eax
cmp edi, ebx
pop ecx
pop ecx
je 0x4472ae
mov eax, dword [ebp + 0x50]
cmp ax, bx
je 0x44727b
mov word [edi + 2], ax
jmp 0x4474fd
mov ecx, edi
call fcn.0040f359
test eax, eax
jne 0x447711
push dword [ebp - 4]
mov ecx, edi
push dword [esi + 0x10]
call fcn.0040f221
test eax, eax
jne 0x4474fd
push dword [ebp + 0x64]
push 0x458d18
mov ecx, esi
jmp 0x4476cc
push ebx
push dword [ebp - 4]
push ebx
push dword [ebp + 0x50]
push dword [esi + 0x10]
call fcn.0040dbf3
add esp, 0x14
jmp 0x4474f5
mov esi, dword [ebp + 0x64]
mov ecx, dword [ebp + 0x58]
cmp byte [ecx + esi - 1], 0x3a
jne 0x4473a4
cmp ecx, 1
je 0x447724
mov al, byte [esi]
mov edi, esi
jmp 0x447311
cmp al, 0x20
je 0x4473a4
cmp al, 9
je 0x4473a4
cmp al, byte [0x46208c]
je 0x4473a4
cmp al, byte [0x46208e]
je 0x4473a4
inc edi
mov al, byte [edi]
cmp al, bl
jne 0x4472e6
cmp byte [ecx + esi - 2], 0x3a
jne 0x447386
cmp ecx, 2
jbe 0x447386
mov edi, dword [ebp + 0x60]
cmp byte [edi + 0x50], bl
je 0x44734a
push ebx
push 0xff
push ebx
push 0x66
mov ecx, edi
mov byte [edi + 0x50], bl
call fcn.00449691
test eax, eax
je 0x447765
mov dword [edi + 0x23c], ebx
push esi
push 0x45b1d0
lea eax, [ebp - 0x374]
push 0x204
push eax
call fcn.00409c27
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.0043b223
mov ecx, dword [ebp + 0x58]
add esp, 0x18
jmp 0x447389
mov edi, dword [ebp + 0x60]
dec ecx
push ecx
push esi
mov byte [ecx + esi], bl
call fcn.00409bc1
pop ecx
pop ecx
push ebx
push esi
mov ecx, edi
call fcn.0044d737
jmp 0x4474f5
cmp byte [esi], 0x23
mov edi, dword [ebp + 0x60]
jne 0x4473d8
mov eax, dword [edi + 0x4c]
push esi
mov ecx, edi
mov dword [ebp + 0x24], eax
call fcn.0044784b
cmp eax, ebx
je 0x447765
cmp eax, 3
jne 0x4473d8
mov eax, dword [ebp]
mov dword [edi + 0x48], eax
mov eax, dword [ebp + 0x24]
mov dword [edi + 0x4c], eax
jmp 0x4474fd
cmp byte [esi], 0x7d
jne 0x447413
push ebx
push ebx
push ebx
push 0x6c
mov ecx, edi
call fcn.00449691
test eax, eax
je 0x447765
inc esi
push esi
call fcn.00401a22
cmp byte [eax], bl
pop ecx
mov dword [ebp + 0x64], eax
je 0x4474fd
mov esi, eax
push esi
call fcn.00454b10
mov edi, dword [ebp + 0x60]
pop ecx
mov dword [ebp + 0x58], eax
push 0x45b1c8
push esi
call fcn.00438b79
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp + 0x50], eax
jne 0x44742f
mov eax, dword [ebp + 0x58]
add eax, esi
mov dword [ebp + 0x50], eax
mov eax, dword [ebp + 0x50]
push 0xffffffffffffffff
sub eax, esi
push eax
push 0x4586a4
push esi
call fcn.004388dd
add esp, 0x10
test eax, eax
push ebx
push ebx
mov ecx, edi
push ebx
je 0x44749e
cmp byte [esi], 0x7b
jne 0x447498
push 0x6b
call fcn.00449691
test eax, eax
je 0x447765
inc esi
push esi
call fcn.00401a22
mov esi, eax
cmp byte [esi], bl
pop ecx
je 0x4474fd
mov edi, dword [ebp + 0x60]
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push esi
mov dword [edi + 0x23c], ebx
call fcn.004477c7
neg al
sbb al, al
pop ecx
pop ecx
mov ecx, edi
and eax, 3
push eax
push esi
jmp 0x4474f0
push ebx
push ebx
push ebx
push esi
jmp 0x4474f0
push 9
call fcn.00449691
test eax, eax
je 0x447765
push dword [ebp + 0x50]
mov dword [edi + 0x23c], ebx
call fcn.00401a22
mov edi, eax
mov al, byte [edi]
cmp al, byte [0x46208c]
pop ecx
jne 0x4474d2
inc edi
push edi
call fcn.00401a22
pop ecx
mov edi, eax
cmp byte [edi], bl
je 0x4474fd
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push edi
call fcn.004477c7
neg al
sbb al, al
pop ecx
pop ecx
mov ecx, dword [ebp + 0x60]
and eax, 3
push eax
push edi
call fcn.0044815c
test eax, eax
je 0x447765
cmp byte [ebp + 0x37], bl
je 0x447692
inc dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
dec eax
je 0x447617
dec eax
je 0x447557
dec eax
je 0x447636
sub eax, 7
jne 0x447692
cmp byte [ebp + 0x37], 0x12
mov ecx, 0x4575d8
je 0x44753d
cmp byte [ebp + 0x37], 0xa3
jbe 0x4475ab
cmp byte [ebp + 0x37], 0xa5
ja 0x4475ab
movzx eax, byte [ebp + 8]
sub eax, 0x11
je 0x4475a6
sub eax, 0x91
je 0x4475a6
dec eax
jne 0x4475ab
mov ecx, 0x45b1bc
jmp 0x4475ab
push 0x45b1b8
push dword [ebp + 0x64]
call fcn.004548e0
cmp byte [ebp + 0x4f], bl
pop ecx
pop ecx
mov ecx, dword [ebp + 0x60]
push ebx
lea eax, [ebp + 0x64]
push 1
push eax
setne al
add al, 0xb8
push eax
call fcn.00449691
cmp byte [ebp + 0x43], bl
je 0x447526
lea eax, [ebp - 0x3c]
push eax
push 0x45b19c
push dword [ebp + 0x64]
call fcn.00409d03
add esp, 0xc
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x28], 9
jmp 0x446e7e
mov ecx, 0x45b190
mov esi, dword [ebp + 0x60]
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0xc]
push eax
push ecx
push 0x45b174
push dword [ebp + 0x64]
mov dword [esi + 0x23c], ebx
call fcn.00409d03
add esp, 0x14
push ebx
push 1
lea eax, [ebp + 0x64]
push eax
push 0x41
mov ecx, esi
call fcn.00449691
test eax, eax
je 0x447765
push ebx
push ebx
push ebx
push 0x66
mov ecx, esi
call fcn.00449691
lea eax, [ebp - 0x170]
push eax
push 0x45b168
push dword [ebp + 0x64]
call fcn.00409d03
add esp, 0xc
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x28], 2
jmp 0x446e7e
lea eax, [ebp - 0x170]
push eax
push 0x45b160
push dword [ebp + 0x64]
call fcn.00409d03
add esp, 0xc
mov dword [ebp + 0x58], eax
jmp 0x446e7e
push 0x45b1b8
push dword [ebp + 0x64]
call fcn.004548e0
cmp byte [ebp + 0x4f], bl
pop ecx
pop ecx
mov ecx, dword [ebp + 0x60]
push ebx
lea eax, [ebp + 0x64]
push 1
push eax
setne al
add al, 0xb8
push eax
call fcn.00449691
lea eax, [ebp - 0x3c]
push eax
push 0x45b150
push dword [ebp + 0x64]
call fcn.00409d03
mov ecx, dword [ebp + 0x60]
add esp, 0xc
push ebx
push 1
lea eax, [ebp + 0x64]
push eax
push 0x41
call fcn.00449691
mov ecx, dword [ebp + 0x60]
push ebx
push ebx
push ebx
push 0x66
call fcn.00449691
mov byte [ebp + 0x37], bl
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x58], ecx
lea ecx, [ebp - 0x62b8]
cmp eax, ecx
mov dword [ebp + 0x64], eax
jne 0x4476bb
lea eax, [ebp - 0xe2c0]
mov edi, dword [ebp + 0x60]
mov dword [ebp + 0x2c], eax
mov esi, eax
jmp 0x4467b9
lea eax, [ebp - 0x62b8]
jmp 0x4476ae
push esi
push 0x45b130
mov ecx, dword [ebp + 0x60]
call fcn.0044a3b9
jmp 0x447765
lea eax, [ebp - 0xa2bc]
push eax
push 0x45b10c
jmp 0x4476cc
push dword [ebp + 0x64]
push 0x45b0d4
jmp 0x4476c9
mov ecx, dword [ebp + 0x60]
push dword [ebp + 0x64]
mov eax, dword [ecx + 4]
mov dword [ecx + 0x23c], eax
push 0x45b0bc
jmp 0x4476cc
push dword [ebp + 0x64]
push 0x45b090
jmp 0x4472a7
push dword [ebp + 0x64]
mov dword [esi + 0x23c], ebx
push 0x45b07c
jmp 0x4472a7
push esi
push 0x45a660
jmp 0x4476c9
push dword [ebp + 0x64]
push 0x45a8e8
jmp 0x4476c9
push dword [ebp + 0x5c]
jmp 0x4476c4
cmp byte [ebp - 0xa2bc], bl
je 0x44777e
mov eax, dword [ebp + 0xc]
mov esi, dword [edi + 0x4c]
push ebx
push ebx
push ebx
push ebx
push ebx
mov dword [edi + 0x4c], eax
push 3
lea eax, [ebp - 0xa2bc]
push eax
mov ecx, edi
call fcn.0044815c
test eax, eax
jne 0x44777b
push dword [ebp + 0x68]
call fcn.0043dc35
pop ecx
lea ecx, [ebp - 0x150]
call fcn.0044e6df
jmp 0x4477bb
mov dword [edi + 0x4c], esi
push dword [ebp + 0x68]
call fcn.0043dc35
pop ecx
lea ecx, [ebp - 0x150]
call fcn.0044e6df
xor eax, eax
inc eax
jmp 0x4477bd
lea ecx, [ebp - 0x150]
call fcn.0044e6df
fldz
push ebx
push ecx
push ecx
fstp qword [esp]
push dword [ebp + 0x74]
push ebx
push 0x45b058
call fcn.0043b223
add esp, 0x18
xor eax, eax
pop edi
pop esi
pop ebx
add ebp, 0x6c
leave
ret 0xc