Function at 0x4ff838
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0xe4
push ebx
push ecx
push edx
push esi
push edi
mov edx, eax
mov dword [esp + 0x2b], edx
mov edi, ebx
mov dword [esp + 0x3b], edi
mov dword [esp + 0x43], ecx
mov dword [esp + 0x4f], 0
mov esi, 0
mov dword [esp + 0x47], esi
mov dword [esp + 0xf4], 0
mov dword [esp + 0x17], 0
mov dword [esp + 0x4b], 0
cmp edx, 0x4a
jne 0x4ff8a4
mov eax, 0
jmp 0x50213a
mov eax, dword [esp + 0xf0]
cmp byte [eax + 0x51], 1
je 0x4ff923
jmp 0x4ff95d
mov eax, edi
call fcn.00427954
lea eax, [esp + 0x54]
mov dword [esp + 0x2f], eax
mov ebx, 0x78d7dc
mov ecx, 0x3c
call fcn.0042f617
mov dword [esp + 0xec], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
mov byte [esp + 0x53], 0
mov eax, dword [edi + 0x33]
mov dword [esp + 0xf0], eax
cmp dword [esp + 0xf0], 0
jne 0x4ff88e
jmp 0x4ff95d
cmp edx, 0x68
je 0x4ff95d
mov dword [esp + 0xcc], 0
mov ebx, edi
lea ecx, [esp + 0xcc]
mov eax, 0x68
call fcn.004ff838
mov eax, dword [0x542b34]
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf0], 0
mov eax, edx
cmp eax, 0x3c
je 0x4ff9be
cmp eax, 0x4e
je 0x4ff9be
cmp eax, 0x5a
je 0x4ff9be
cmp eax, 0x55
je 0x4ff9be
cmp eax, 0x59
je 0x4ff9be
cmp eax, 0x47
je 0x4ff9be
cmp eax, 0x58
je 0x4ff9be
cmp eax, 9
je 0x4ff9be
cmp eax, 0x26
je 0x4ff9be
cmp eax, 5
je 0x4ff9be
cmp eax, 0x22
je 0x4ff9be
cmp eax, 0x42
je 0x4ff9be
cmp eax, 0x43
je 0x4ff9be
cmp eax, 0x3f
je 0x4ff9be
cmp eax, 0x40
je 0x4ff9be
cmp eax, 0x4f
je 0x4ff9be
cmp eax, 0x56
je 0x4ff9be
cmp eax, 0x48
je 0x4ff9be
cmp eax, 0x61
jne 0x4ff9ca
lea eax, [esp + 0xdc]
call fcn.00434e50
mov eax, edx
cmp eax, 0x22
je 0x4ff9e0
cmp eax, 0x47
je 0x4ff9e0
cmp eax, 0x4e
je 0x4ff9e0
cmp eax, 0x55
jne 0x4ff9ec
lea eax, [esp + 0xd4]
call fcn.00434e50
movzx eax, byte [edi + 0x38]
and eax, 1
cmp eax, 0
pushfd
lea eax, [esp + 0xe8]
mov dword [esp + 0x1f], eax
popfd
pushfd
lea eax, [esp + 0xec]
mov dword [esp + 0x23], eax
popfd
pushfd
lea ebx, [esp + 0xd4]
mov dword [esp + 0x37], ebx
popfd
je 0x4ffa40
mov eax, edi
call fcn.004ff6a8
mov dword [esp + 0xf4], eax
cmp dword [esp + 0xf4], 0
jne 0x501d93
mov byte [esp + 0x53], 1
cmp dword [esp + 0xf0], 0
je 0x4ffa59
jmp 0x4ffb70
cmp edx, 7
jne 0x4ffa63
jmp 0x4ffb70
cmp edx, 0x68
jne 0x4ffa4f
jmp 0x4ffb70
mov dword [esp + 0x4b], 1
mov eax, edi
mov ebx, str.TOPSPEED
call fcn.004f974c
mov dword [esp + 0xf4], eax
mov eax, dword [edi + 0x33]
mov dword [esp + 0xf0], eax
cmp dword [esp + 0xf4], 0
je 0x4ffacd
cmp dword [esp + 0xf0], 0
je 0x501d93
mov eax, edi
call fcn.004f9a38
mov dword [esp + 0xf0], 0
jmp 0x501d93
mov eax, dword [esp + 0xf0]
cmp byte [eax + 0x52], 0
jne 0x4ffb80
jmp 0x4ffb89
push 0
push 0x5671f4
push 0x5671fc
call sub.KERNEL32.dll_GetProfileIntA
mov ebx, dword [esp + 0xf0]
mov byte [ebx + 0x52], al
mov eax, dword [esp + 0xf0]
cmp byte [eax + 0x52], 0
je 0x4ffb70
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x54]
call fcn.004b3428
mov eax, 0x105
mov ebx, 1
call fcn.004b363c
mov ebx, dword [esp + 0xf0]
mov dword [ebx + 0x54], eax
push 0x105
mov eax, dword [esp + 0xf4]
mov eax, dword [eax + 0x54]
push eax
push 0x567208
push 0x567218
push 0x567224
call sub.KERNEL32.dll_GetProfileStringA
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x54]
cmp byte [eax], 0
jne 0x4ffb64
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x54]
mov ebx, str.TOPSPEED.LOG
call fcn.004f627c
mov eax, dword [esp + 0xf0]
call fcn.004ff7a4
cmp dword [esp + 0xf0], 0
jne 0x4ffab7
jmp 0x4ffb89
call fcn.0041d96c
mov dword [esp + 0x17], eax
mov edx, dword [esp + 0x2b]
mov eax, edx
cmp eax, 5
je 0x4ffbee
cmp eax, 0x22
je 0x4ffbee
cmp eax, 6
je 0x4ffbee
cmp eax, 0x39
je 0x4ffbee
cmp eax, 0xf
je 0x4ffbee
cmp eax, 0x11
je 0x4ffbee
cmp eax, 0x1c
je 0x4ffbee
cmp eax, 0x3e
je 0x4ffbee
cmp eax, 0x21
je 0x4ffbee
cmp eax, 0x43
je 0x4ffbee
cmp eax, 0x40
je 0x4ffbee
cmp eax, 0x2a
je 0x4ffbee
cmp eax, 0x2c
je 0x4ffbee
cmp eax, 0x2f
je 0x4ffbee
cmp eax, 0x2d
je 0x4ffbee
cmp eax, 0x2e
je 0x4ffbee
cmp eax, 0x55
je 0x4ffbee
cmp eax, 0x56
je 0x4ffbee
cmp eax, 0x59
jne 0x4ffc07
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov dword [esp + 0x43], eax
mov eax, dword [eax - 4]
mov dword [esp + 0x4f], eax
mov esi, dword [eax + 0x10]
mov dword [esp + 0x47], esi
cmp dword [esp + 0xf0], 0
jne 0x4ffc16
jmp 0x4fffae
cmp edx, 0x18
je 0x4ffc29
cmp edx, 0x1f
je 0x4ffc29
cmp edx, 0x31
jne 0x4ffe03
mov eax, dword [esp + 0xf0]
cmp dword [eax + 0x89], 0
je 0x4ffe03
lea eax, [esp + 0x90]
mov dword [esp + 0x27], eax
mov ebx, dword [esp + 0xf0]
mov ebx, dword [ebx + 0x89]
mov ecx, dword [esp + 0xf0]
mov ecx, dword [ecx + 0x8d]
call fcn.00531968
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x89]
mov ebx, dword [esp + 0xf0]
mov ebx, dword [ebx + 0x8d]
call fcn.00434fc0
mov eax, dword [esp + 0xf0]
cmp dword [eax + 0x7d], 0
je 0x4ffca7
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x7d]
mov eax, dword [eax + 0x1d]
call fcn.00427b4c
jmp 0x4ffcae
mov eax, edi
call fcn.00427b5c
cmp edx, 0x18
jne 0x4ffcbc
mov eax, edi
call fcn.00427bdc
jmp 0x4ffcc3
mov eax, edi
call fcn.00427ba8
call fcn.00422190
cmp eax, 0
je 0x4ffd1c
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x89]
mov ebx, dword [esp + 0xf0]
mov ebx, dword [ebx + 0x8d]
call fcn.00434fc0
mov eax, dword [esp + 0xf0]
cmp dword [eax + 0x7d], 0
je 0x4ffd10
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x7d]
mov eax, dword [eax + 0x1d]
call fcn.00427b4c
jmp 0x4ffdfa
mov eax, edi
call fcn.00427b5c
jmp 0x4ffdfa
mov eax, dword [esp + 0xf0]
cmp dword [eax + 0x7d], 0
je 0x4ffd6b
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x7d]
mov eax, dword [eax + 0x1d]
call fcn.00427bb4
jmp 0x4ffd72
mov ecx, dword [esp + 0x23]
mov eax, ecx
call fcn.00531428
mov dword [esp + 0x3f], eax
mov eax, ebx
call fcn.00531428
mov ebx, eax
mov ecx, dword [ecx + 4]
mov eax, dword [esp + 0x3f]
call fcn.0042f77d
cmp eax, 0
jne 0x4ffd9b
jmp 0x4ffdf1
mov eax, edi
call fcn.00427bc4
lea ebx, [esp + 0x9c]
mov dword [esp + 0x23], ebx
mov eax, ebx
call fcn.005319c8
mov eax, ebx
call fcn.0053176c
mov eax, dword [ebx + 4]
mov ebx, dword [esp + 0x27]
mov ecx, ebx
mov ecx, dword [ecx + 4]
cmp eax, ecx
je 0x4ffd3d
mov eax, dword [esp + 0x23]
call fcn.005313e0
mov eax, dword [esp + 0xf0]
cmp dword [eax + 0x7d], 0
je 0x4ffdea
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x7d]
mov eax, dword [eax + 0x1d]
call fcn.00427b4c
jmp 0x4ffdf1
mov ebx, edx
mov eax, dword [esp + 0xf0]
call fcn.004faa58
mov dword [esp + 0xf4], eax
cmp dword [esp + 0xf4], 0
jne 0x501d93
jmp 0x4ffe0f
mov eax, edi
call fcn.00427b5c
mov eax, dword [esp + 0x23]
call fcn.005319e0
mov eax, dword [esp + 0x27]
call fcn.005319e0
movzx eax, byte [edi + 0x38]
and eax, 1
cmp eax, 0
je 0x4ffdc5
sub esp, 8
mov eax, 4
mov ebx, dword [esp + eax + 0xe4]
mov dword [esp + eax], ebx
sub eax, 4
jae 0x4ffe17
mov ebx, esi
mov ecx, edx
mov eax, dword [esp + 0xf8]
call fcn.0047f004
mov dword [esp + 0xf4], eax
cmp dword [esp + 0xf4], 0
jne 0x501d93
cmp edx, 3
je 0x4ffe90
cmp edx, 9
je 0x4ffe90
cmp edx, 0xa
je 0x4ffe90
cmp edx, 0xd
je 0x4ffe90
cmp edx, 0x17
je 0x4ffe90
cmp edx, 0x19
je 0x4ffe90
cmp edx, 0x1a
je 0x4ffe90
cmp edx, 0x25
je 0x4ffe90
cmp edx, 0x26
je 0x4ffe90
cmp edx, 0x30
je 0x4ffe90
cmp edx, 0x34
je 0x4ffe90
cmp edx, 0x3c
je 0x4ffe90
cmp edx, 0x48
jne 0x4fffae
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x45]
and eax, 1
cmp eax, 0
jne 0x4fffae
mov eax, dword [esp + 0xf0]
mov ecx, dword [eax + 0x79]
cmp ecx, 0
jne 0x4ffec2
jmp 0x4fffae
cmp dword [ecx + 8], 0
jne 0x4ffee1
jmp 0x4fff14
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x49]
and eax, 1
cmp eax, 0
je 0x4ffeba
jmp 0x4fff14
cmp dword [ecx + 0x18], 0
jne 0x4fff30
jmp 0x4fff65
mov eax, dword [esp + 0xf0]
mov eax, dword [eax]
call fcn.004b3428
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 8]
call fcn.00481478
mov ebx, dword [esp + 0xf0]
mov dword [ebx], eax
mov eax, dword [esp + 0xf0]
mov ebx, 0
call fcn.004fb728
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x49]
and eax, 2
cmp eax, 0
je 0x4ffed6
jmp 0x4fff65
cmp dword [ecx + 0x10], 0
jne 0x4fff79
jmp 0x4fffae
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 8]
call fcn.004b3428
mov eax, dword [ecx + 0x14]
mov ebx, dword [ecx + 0x18]
call fcn.00481478
mov ebx, dword [esp + 0xf0]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0xf0]
mov ebx, 1
call fcn.004fb728
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x49]
and eax, 4
cmp eax, 0
je 0x4fff28
jmp 0x4fffae
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0xc]
call fcn.004b3428
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x10]
call fcn.00481478
mov ebx, dword [esp + 0xf0]
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0xf0]
mov ebx, 2
call fcn.004fb728
mov eax, 0x78d7dc
call fcn.004f62bb
mov dword [esp + 0xf4], eax
cmp dword [esp + 0xf4], 0
je 0x4fffe8
mov eax, dword [esp + 0xf0]
mov ebx, dword [esp + 0xf4]
call fcn.004faa18
mov dword [esp + 0xf4], eax
jmp 0x501d93
mov edi, dword [esp + 0x2b]
mov eax, edi
cmp eax, 1
jne 0x500022
cmp byte [esp + 0x53], 0
je 0x50000a
mov dword [esp + 0xf4], 0x50
jmp 0x501d93
mov eax, dword [esp + 0xf0]
call fcn.004fbc68
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 4
jne 0x50003f
mov eax, dword [esp + 0xf0]
call fcn.004fbc58
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x4b
jne 0x500073
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov bx, word [eax - 4]
lea eax, [eax + 4]
mov ecx, dword [eax - 4]
lea eax, [eax + 4]
mov edx, dword [eax - 4]
mov eax, dword [esp + 0xf0]
call fcn.004fad48
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x4c
jne 0x5000a7
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov bx, word [eax - 4]
lea eax, [eax + 4]
mov ecx, dword [eax - 4]
lea eax, [eax + 4]
mov edx, dword [eax - 4]
mov eax, dword [esp + 0xf0]
call fcn.004fad00
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x4d
pushfd
lea ecx, [esp + 0xf0]
popfd
jne 0x5000d8
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov bx, word [eax - 4]
mov eax, dword [esp + 0xf0]
call fcn.004face4
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x4e
pushfd
lea edx, [esp + 0xf8]
mov dword [esp + 0x3b], edx
popfd
jne 0x5001af
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov si, word [eax - 4]
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xe8], eax
mov ebx, dword [esp + 0xe0]
inc ebx
mov eax, 1
call fcn.004b363c
mov ebx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
call fcn.0042f617
mov dword [esp + 0xe4], eax
mov ebx, dword [esp + 0xd8]
mov eax, dword [esp + 0xd4]
call fcn.00481478
mov ecx, eax
cmp ecx, 0
je 0x50019e
push dword [esp + 0xe8]
push edx
mov ax, si
mov bx, si
mov eax, dword [esp + 0xf8]
mov edx, dword [esp + 0xec]
call fcn.00502210
cmp eax, 0
jne 0x50019e
push dword [esp + 0xe8]
mov bx, si
mov eax, dword [esp + 0xf4]
mov edx, dword [esp + 0xe8]
call fcn.004fabac
mov dword [esp + 0xf4], eax
mov eax, ecx
call fcn.004b3428
mov eax, dword [esp + 0xe4]
call fcn.004b3428
jmp 0x501d93
cmp eax, 0x4f
jne 0x500225
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov si, word [eax - 4]
mov ebx, dword [esp + 0xe0]
mov eax, dword [esp + 0xdc]
call fcn.00481478
mov ecx, eax
cmp ecx, 0
je 0x501d93
mov edi, dword [esp + 0x1f]
push edi
push edx
mov ax, si
mov bx, si
mov edx, dword [esp + 0x23]
mov eax, dword [esp + 0xf8]
call fcn.00502218
cmp eax, 0
jne 0x501d93
push edi
mov bx, si
mov eax, dword [esp + 0xf4]
call fcn.004fac70
mov dword [esp + 0xf4], eax
mov eax, ecx
call fcn.004b3428
jmp 0x501d93
cmp eax, 2
jne 0x500244
mov ebx, ecx
mov eax, dword [esp + 0xf0]
call fcn.004fb658
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 5
jne 0x500320
mov ebx, dword [esp + 0xe0]
mov eax, dword [esp + 0xdc]
call fcn.00481478
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x45]
and eax, 0x8000
cmp eax, 0
je 0x5002ce
mov eax, dword [esp + 0xf0]
and dword [eax + 0x45], 0xffff7fff
mov eax, dword [esp + 0xf0]
mov dword [eax + 0x5c], edi
call fcn.00534a2c
mov ebx, dword [esp + 0x3b]
push ebx
push 0
push 0x2420
push eax
call sub.USER32.dll_PostMessageA
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0x47]
mov dword [ebx + 0x60], eax
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0xe4]
mov dword [ebx + 0x64], eax
jmp 0x501d93
cmp dword [esp + 0xe4], 0
jne 0x5002e5
mov dword [esp + 0xf4], 0x4c
jmp 0x50030f
mov eax, dword [esp + 0xe4]
cmp byte [eax], 0
je 0x5002d8
mov ebx, dword [esp + 0x47]
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xe4]
call fcn.004fbb98
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0xe4]
call fcn.004b3428
jmp 0x501d93
cmp eax, 0x22
jne 0x500418
mov ebx, dword [esp + 0xe0]
mov eax, dword [esp + 0xdc]
call fcn.00481478
mov esi, eax
mov ebx, dword [esp + 0xd8]
mov eax, dword [esp + 0xd4]
call fcn.00481478
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x45]
and eax, 0x8000
cmp eax, 0
je 0x5003c9
mov eax, dword [esp + 0xf0]
and dword [eax + 0x45], 0xffff7fff
mov eax, dword [esp + 0xf0]
mov dword [eax + 0x5c], edi
call fcn.00534a2c
mov ebx, dword [esp + 0x3b]
push ebx
push 0
push 0x2420
push eax
call sub.USER32.dll_PostMessageA
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0x47]
mov dword [ebx + 0x60], eax
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0xe4]
mov dword [ebx + 0x64], eax
mov eax, dword [esp + 0xf0]
mov dword [eax + 0x68], esi
jmp 0x501d93
cmp esi, 0
jne 0x5003db
mov dword [esp + 0xf4], 0x4c
jmp 0x500400
cmp byte [esi], 0
je 0x5003ce
mov ebx, dword [esp + 0x47]
mov ecx, esi
mov eax, dword [esp + 0xf0]
mov edx, dword [esp + 0xe4]
call fcn.004fbb68
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0xe4]
call fcn.004b3428
mov eax, esi
call fcn.004b3428
jmp 0x501d93
cmp eax, 3
jne 0x500494
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x45]
and eax, 0x8000
cmp eax, 0
je 0x500465
mov eax, dword [esp + 0xf0]
and dword [eax + 0x45], 0xffff7fff
mov eax, dword [esp + 0xf0]
mov dword [eax + 0x5c], edi
call fcn.00534a2c
mov ebx, dword [esp + 0x3b]
push ebx
push 0
push 0x2420
push eax
call sub.USER32.dll_PostMessageA
jmp 0x501d93
cmp byte [esp + 0x53], 0
je 0x50047c
mov dword [esp + 0xf4], 0x50
jmp 0x501d93
mov eax, dword [esp + 0xf0]
call fcn.004fbc38
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 6
jne 0x50050b
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x45]
and eax, 0x8000
cmp eax, 0
je 0x5004ef
mov eax, dword [esp + 0xf0]
and dword [eax + 0x45], 0xffff7fff
mov eax, dword [esp + 0xf0]
mov dword [eax + 0x5c], edi
call fcn.00534a2c
mov ebx, dword [esp + 0x3b]
push ebx
push 0
push 0x2420
push eax
call sub.USER32.dll_PostMessageA
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0x47]
mov dword [ebx + 0x60], eax
jmp 0x501d93
mov ebx, dword [esp + 0x47]
mov eax, dword [esp + 0xf0]
call fcn.004fbbcc
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x54
jne 0x500696
mov eax, dword [esp + 0xf0]
xor dword [eax + 0x45], 0x4000
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x5c]
cmp eax, 3
pushfd
lea esi, [esp + 0xf4]
popfd
jne 0x50055f
mov eax, dword [esp + 0xf0]
call fcn.004fbc38
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x3b]
mov ebx, esi
mov ecx, edx
call fcn.004ff600
jmp 0x50066a
cmp eax, 6
jne 0x500593
mov eax, dword [esp + 0xf0]
mov ebx, dword [eax + 0x60]
mov eax, dword [esp + 0xf0]
call fcn.004fbbcc
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x3b]
mov ebx, esi
mov ecx, edx
call fcn.004ff600
jmp 0x50066a
cmp eax, 5
jne 0x5005e0
mov eax, dword [esp + 0xf0]
mov ebx, dword [eax + 0x60]
mov eax, dword [esp + 0xf0]
mov ecx, dword [eax + 0x64]
mov eax, dword [esp + 0xf0]
call fcn.004fbb98
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x3b]
mov ebx, esi
mov ecx, edx
call fcn.004ff600
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x64]
call fcn.004b3428
jmp 0x50066a
cmp eax, 0x22
jne 0x500645
mov eax, dword [esp + 0xf0]
mov ebx, dword [eax + 0x60]
mov eax, dword [esp + 0xf0]
mov ecx, dword [eax + 0x68]
mov eax, dword [esp + 0xf0]
mov edx, dword [eax + 0x64]
mov eax, dword [esp + 0xf0]
call fcn.004fbb68
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x3b]
mov ebx, esi
mov ecx, dword [esp + 0x37]
call fcn.004ff600
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x64]
call fcn.004b3428
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x68]
call fcn.004b3428
jmp 0x50066a
cmp eax, 0x1a
jne 0x50066a
mov eax, dword [esp + 0xf0]
call fcn.004fb618
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x3b]
mov ebx, esi
mov ecx, edx
call fcn.004ff600
mov eax, dword [esp + 0xf0]
and dword [eax + 0x45], 0xffffbfff
cmp dword [esp + 0xf4], 0xffffffff
jne 0x501d93
mov dword [esp + 0xec], 0xffffffff
jmp 0x501d93
cmp eax, 0x5c
je 0x5006a0
cmp eax, 0x5d
jne 0x5006c1
cmp edi, 0x5c
sete al
movzx ebx, al
mov eax, dword [esp + 0xf0]
call fcn.004fbb28
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x34
jne 0x500713
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x45]
and eax, 2
cmp eax, 0
je 0x5006f9
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x15]
mov dword [esp + 0xec], eax
mov dword [esp + 0xf4], 0
jmp 0x501d93
mov ebx, ecx
mov eax, dword [esp + 0xf0]
call fcn.004fbad8
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0xe
jne 0x500732
mov ebx, ecx
mov eax, dword [esp + 0xf0]
call fcn.004fb638
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 7
jne 0x5007af
cmp byte [esp + 0x53], 0
je 0x500758
push edi
push dword [esp + 0xd4]
call dword [0x546488]
add esp, 8
mov dword [esp + 0xf4], eax
jmp 0x500775
cmp dword [esp + 0xf0], 0
je 0x500775
mov eax, dword [esp + 0xf0]
call fcn.004fc1ac
mov dword [esp + 0xf4], eax
cmp dword [esp + 0xf4], 0
jne 0x501d93
mov ebx, dword [esp + 0x3b]
mov eax, ebx
call fcn.00427950
push 1
push 1
push 1
mov eax, ebx
mov ebx, 0
mov ecx, 1
mov edx, 1
call fcn.00436420
jmp 0x501d93
cmp eax, 0x68
jne 0x500864
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov eax, dword [eax - 4]
cmp byte [esp + 0x53], 0
je 0x5007e4
push eax
push edi
push dword [esp + 0xd8]
call dword [0x546488]
add esp, 0xc
mov dword [esp + 0xf4], eax
jmp 0x500801
cmp dword [esp + 0xf0], 0
je 0x500801
mov eax, dword [esp + 0xf0]
call fcn.004fc1ac
mov dword [esp + 0xf4], eax
cmp dword [esp + 0xf4], 0
jne 0x500832
mov ebx, dword [esp + 0x3b]
mov eax, ebx
call fcn.00427950
push 1
push 1
push 1
mov eax, ebx
mov ebx, 0
mov ecx, 1
mov edx, 1
call fcn.00436420
cmp dword [esp + 0xf0], 0
jne 0x500845
mov eax, dword [esp + 0x3b]
call fcn.004363c8
cmp byte [esp + 0x53], 0
je 0x501d93
mov ebx, dword [esp + 0x3b]
mov eax, ebx
call fcn.004ff638
and byte [ebx + 0x38], 0xfe
jmp 0x501d93
cmp eax, 8
jne 0x500881
mov eax, dword [esp + 0xf0]
call fcn.004fada4
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x19
je 0x50088f
cmp eax, 0x30
jne 0x500a06
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov ebx, dword [eax - 4]
mov eax, dword [esp + 0xf0]
cmp dword [eax], 0
jne 0x5008b2
mov dword [esp + 0xf4], 0x2d
jmp 0x50090b
mov eax, dword [esp + 0xf0]
mov eax, dword [eax]
cmp byte [eax], 0
je 0x5008a5
cmp byte [esp + 0x53], 0
je 0x5008e2
push ebx
push edi
push dword [esp + 0xd8]
call dword [0x546488]
add esp, 0xc
mov dword [esp + 0xf4], eax
jmp 0x50090b
cmp byte [0x5673b4], 0
je 0x5008f8
mov dword [esp + 0xf4], 0x5a
jmp 0x50090b
mov eax, dword [esp + 0xf0]
call fcn.004fc3b0
mov dword [esp + 0xf4], eax
cmp dword [esp + 0xf4], 0
jne 0x501d93
mov eax, dword [esp + 0xf0]
mov dword [eax + 0x31], ebx
mov eax, ebx
and eax, 0x20
cmp eax, 0
je 0x50093d
mov eax, dword [esp + 0xf0]
or dword [eax + 0x45], 0x80
jmp 0x500955
mov eax, ebx
and eax, 0x10
cmp eax, 0
jne 0x50092d
mov eax, dword [esp + 0xf0]
and dword [eax + 0x45], 0xffffff7f
mov eax, ebx
mov ecx, 4
cdq
idiv ecx
cmp edx, 0
je 0x500971
mov eax, dword [esp + 0xf0]
or dword [eax + 0x45], 0x40
jmp 0x50097c
mov eax, dword [esp + 0xf0]
and dword [eax + 0x45], 0xffffffbf
push 1
push 1
push 1
mov eax, dword [esp + 0x47]
mov ecx, 1
mov edx, 1
call fcn.00436420
jmp 0x501d93
cmp esi, 0
je 0x5009a4
jmp 0x500a6d
lea edx, [esp + 0xa8]
mov ebx, edx
mov eax, 0x7cb9
mov ecx, 0xa
call fcn.004c27c4
push 1
mov bx, di
inc bx
mov ecx, edx
mov eax, dword [esp + 0xf4]
mov edx, 0x567278
call fcn.004fabac
mov dword [esp + 0xf4], eax
jmp 0x500a8e
cmp esi, 0
je 0x5009ec
jmp 0x500a7c
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
mov ecx, 0
mov edx, 0xffffffff
call fcn.0042f6ca
jmp 0x500a8e
cmp eax, 0x52
jne 0x500a91
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov esi, dword [eax - 4]
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x11]
mov ebx, dword [esp + 0xf0]
mov ebx, dword [ebx + 0x79]
mov ebx, dword [ebx + 0x23]
mov ecx, esi
call fcn.00432b7c
mov edi, 0
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x1d]
cmp edi, eax
jae 0x501d93
mov eax, dword [esp + 0xf0]
mov ebx, dword [eax + 0x19]
imul eax, edi, 0x2d
lea ebx, [ebx + eax]
mov eax, dword [ebx + 0x10]
and eax, 4
cmp eax, 0
jne 0x50099a
mov eax, dword [ebx + 0x10]
and eax, 2
cmp eax, 0
jne 0x5009e2
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
mov edx, esi
mov ecx, 0
call fcn.0042f6ca
inc edi
jmp 0x500a3c
cmp eax, 9
jne 0x500ae7
mov ebx, dword [esp + 0xe0]
mov eax, dword [esp + 0xdc]
call fcn.00481478
mov ebx, eax
cmp ebx, 0
je 0x501d93
cmp byte [esp + 0x53], 0
je 0x500ac8
mov dword [esp + 0xf4], 0x50
jmp 0x500adb
mov eax, dword [esp + 0xf0]
call fcn.004fbac8
mov dword [esp + 0xf4], eax
mov eax, ebx
call fcn.004b3428
jmp 0x501d93
cmp eax, 0xa
jne 0x500b4a
mov eax, dword [esp + 0xf0]
mov al, byte [eax + 0x10]
and al, 2
shr al, 1
cmp al, 0
jne 0x500b0e
mov dword [esp + 0xf4], 0x36
jmp 0x501d93
cmp byte [esp + 0x53], 0
je 0x500b32
push edi
push dword [esp + 0xd4]
call dword [0x546488]
add esp, 8
mov dword [esp + 0xf4], eax
jmp 0x501d93
mov eax, dword [esp + 0xf0]
call fcn.004fbaa0
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0xb
jne 0x500b7e
cmp byte [esp + 0x53], 0
je 0x500b66
mov dword [esp + 0xf4], 0x50
jmp 0x501d93
mov eax, dword [esp + 0xf0]
call fcn.004fb99c
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0xc
jne 0x500baa
mov ebx, ecx
mov eax, dword [esp + 0xf0]
mov ecx, dword [eax + 0x45]
and ecx, 2
mov eax, dword [esp + 0xf0]
call fcn.004fb950
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x39
jne 0x500bd8
mov ebx, dword [esp + 0x47]
mov eax, dword [esp + 0xf0]
mov edx, dword [eax + 0x45]
and edx, 2
mov eax, dword [esp + 0xf0]
call fcn.004fb8c0
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0xd
jne 0x500bf5
mov eax, dword [esp + 0xf0]
call fcn.004fb898
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x5f
jne 0x500c54
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov edx, dword [eax - 4]
mov ebx, ecx
mov eax, dword [esp + 0xf0]
call fcn.004fb4e0
mov dword [esp + 0xf4], eax
cmp dword [esp + 0xf4], 0
je 0x500c39
mov dword [esp + 0xf4], 0
mov dword [esp + 0xec], 0
mov eax, dword [esp + 0xec]
cmp eax, edx
seta al
movzx eax, al
mov dword [esp + 0xec], eax
jmp 0x501d93
cmp eax, 0x1d
jne 0x500c88
cmp byte [esp + 0x53], 0
je 0x500c70
mov dword [esp + 0xf4], 0x50
jmp 0x501d93
mov eax, dword [esp + 0xf0]
call fcn.004fbafc
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0xf
jne 0x500ca9
mov ebx, dword [esp + 0x47]
mov eax, dword [esp + 0xf0]
call fcn.004fb7dc
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x10
jne 0x500cda
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov ebx, dword [eax - 4]
mov eax, dword [esp + 0xf0]
mov ecx, dword [eax + 0x15]
mov eax, dword [esp + 0xf0]
call fcn.004fb790
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x11
jne 0x500d05
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov ecx, dword [eax - 4]
mov ebx, dword [esp + 0x47]
mov eax, dword [esp + 0xf0]
call fcn.004fb77c
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x48
jne 0x500da1
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov ecx, dword [eax - 4]
mov ebx, dword [esp + 0xe0]
mov eax, dword [esp + 0xdc]
call fcn.00481478
mov ebx, eax
cmp ebx, 0
je 0x501d93
mov esi, dword [esp + 0x1b]
push esi
mov edi, dword [esp + 0x23]
push edi
push edx
mov eax, dword [esp + 0xfc]
mov edx, str.TOPSPEED
call fcn.005028fc
cmp eax, 0
jne 0x500d95
cmp byte [esp + 0x53], 0
je 0x500d7f
push edi
push esi
push ecx
push ebx
push dword [esp + 0x3b]
push dword [esp + 0xe4]
call dword [0x546488]
add esp, 0x18
mov dword [esp + 0xf4], eax
jmp 0x500d95
push edi
mov edx, esi
mov eax, dword [esp + 0xf4]
call fcn.004fab58
mov dword [esp + 0xf4], eax
mov eax, ebx
call fcn.004b3428
jmp 0x501d93
cmp eax, 0x56
jne 0x500def
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov ecx, dword [eax - 4]
mov ebx, dword [esp + 0xe0]
mov eax, dword [esp + 0xdc]
call fcn.00481478
mov ebx, eax
cmp ebx, 0
je 0x501d93
push dword [esp + 0x1f]
push edx
mov eax, dword [esp + 0x4f]
mov edx, dword [esp + 0x23]
call fcn.00502260
cmp eax, 0
mov eax, ebx
call fcn.004b3428
jmp 0x501d93
cmp eax, 0x62
jne 0x500e07
mov ebx, ecx
mov eax, dword [esp + 0xf0]
call fcn.004f95ac
jmp 0x501d93
cmp eax, 0x63
jne 0x500e3c
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov ebx, dword [eax - 4]
mov eax, dword [esp + 0xf0]
call fcn.004f9584
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x3b]
mov eax, dword [eax + 0x33]
mov dword [esp + 0xf0], eax
jmp 0x501d93
cmp eax, 0x66
jne 0x500e63
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov ebx, dword [eax - 4]
mov eax, dword [esp + 0xf0]
call fcn.004f9564
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x12
jne 0x500ead
mov eax, dword [esp + 0xf0]
mov dword [eax + 0x99], 0xffffffff
cmp byte [esp + 0x53], 0
je 0x500e90
mov dword [esp + 0xf4], 0x50
jmp 0x501d93
mov eax, dword [esp + 0xf0]
mov ebx, 0xffffffff
call fcn.004faf8c
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x13
jne 0x500ee1
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov ebx, dword [eax - 4]
mov eax, dword [esp + 0xf0]
mov dword [eax + 0x99], ebx
mov eax, dword [esp + 0xf0]
call fcn.004faf8c
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x14
jne 0x500f16
mov eax, dword [esp + 0xf0]
call fcn.004fb6f0
mov dword [esp + 0xf4], eax
cmp dword [esp + 0xf4], 0x20
je 0x500ee6
jmp 0x501d93
call fcn.0041d96c
cmp eax, ecx
jl 0x500f31
jmp 0x501d93
cmp eax, 0x15
jne 0x500f67
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov ebx, dword [eax - 4]
call fcn.0041d96c
mov ecx, eax
imul eax, ebx, 0x64
add ecx, eax
mov eax, dword [esp + 0xf0]
call fcn.004fb6f0
mov dword [esp + 0xf4], eax
cmp dword [esp + 0xf4], 0
je 0x500f58
mov eax, 0x3e8
call fcn.004360d8
cmp dword [esp + 0xf4], 0
jne 0x500f08
jmp 0x501d93
cmp eax, 0x16
jne 0x500f84
mov eax, dword [esp + 0xf0]
call fcn.004fadc4
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x17
jne 0x501055
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x45]
and eax, 1
cmp eax, 0
je 0x500fc7
mov eax, dword [esp + 0xf0]
mov eax, dword [eax]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0xe4]
call fcn.0042f564
mov dword [esp + 0xe8], eax
jmp 0x501d93
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x79]
mov eax, dword [eax + 4]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x79]
cmp dword [eax + 8], 0xffffffff
jne 0x501009
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x79]
mov eax, dword [eax + 4]
call fcn.0042f564
mov dword [esp + 0xe8], eax
jmp 0x501d93
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x79]
cmp dword [eax + 8], 0xfffffffe
jne 0x50103c
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x79]
mov eax, dword [eax + 4]
movsx eax, byte [eax]
mov dword [esp + 0xe8], eax
inc dword [esp + 0xe4]
jmp 0x501d93
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x79]
mov eax, dword [eax + 8]
mov dword [esp + 0xe8], eax
jmp 0x501d93
cmp eax, 0x18
jne 0x501096
cmp byte [esp + 0x53], 0
je 0x50107e
push edi
push dword [esp + 0xd4]
call dword [0x546488]
add esp, 8
mov dword [esp + 0xf4], eax
jmp 0x501d93
mov eax, dword [esp + 0xf0]
call fcn.004fb6b4
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x41
jne 0x5010b3
mov eax, dword [esp + 0xf0]
call fcn.004fb628
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x1a
jne 0x50112f
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x45]
and eax, 0x8000
cmp eax, 0
je 0x501100
mov eax, dword [esp + 0xf0]
and dword [eax + 0x45], 0xffff7fff
mov eax, dword [esp + 0xf0]
mov dword [eax + 0x5c], edi
call fcn.00534a2c
mov ebx, dword [esp + 0x3b]
push ebx
push 0
push 0x2420
push eax
call sub.USER32.dll_PostMessageA
jmp 0x501d93
cmp byte [esp + 0x53], 0
je 0x501117
mov dword [esp + 0xf4], 0x50
jmp 0x501d93
mov eax, dword [esp + 0xf0]
call fcn.004fb618
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x1b
jne 0x50114e
mov ebx, ecx
mov eax, dword [esp + 0xf0]
call fcn.004fb604
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x1c
jne 0x50116f
mov ebx, dword [esp + 0x47]
mov eax, dword [esp + 0xf0]
call fcn.004fb5f0
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x3d
jne 0x5011c2
cmp byte [esp + 0x53], 0
je 0x5011a2
push dword [esp + 0x1f]
push dword [esp + 0x1f]
push 0
push edi
push dword [esp + 0xe0]
call dword [0x546488]
add esp, 0x14
mov dword [esp + 0xf4], eax
jmp 0x501d93
mov ebx, dword [esp + 0x1b]
mov ecx, dword [esp + 0x1f]
mov eax, dword [esp + 0xf0]
call fcn.004fb5ac
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x3e
jne 0x50121f
cmp byte [esp + 0x53], 0
je 0x5011fb
push dword [esp + 0x1f]
push dword [esp + 0x1f]
mov eax, dword [esp + 0x4f]
mov eax, dword [eax + 0x19]
push eax
push edi
push dword [esp + 0xe0]
call dword [0x546488]
add esp, 0x14
mov dword [esp + 0xf4], eax
jmp 0x501d93
mov ebx, dword [esp + 0x47]
mov ecx, dword [esp + 0x1b]
mov edx, dword [esp + 0x1f]
mov eax, dword [esp + 0xf0]
call fcn.004fb520
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x1f
jne 0x501260
cmp byte [esp + 0x53], 0
je 0x501248
push edi
push dword [esp + 0xd4]
call dword [0x546488]
add esp, 8
mov dword [esp + 0xf4], eax
jmp 0x501d93
mov eax, dword [esp + 0xf0]
call fcn.004fb678
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x1e
jne 0x501294
cmp byte [esp + 0x53], 0
je 0x50127c
mov dword [esp + 0xf4], 0x50
jmp 0x501d93
mov eax, dword [esp + 0xf0]
call fcn.004fb518
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x36
jne 0x5012c5
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov ebx, dword [eax - 4]
mov eax, dword [esp + 0xf0]
mov ecx, dword [eax + 0x15]
mov eax, dword [esp + 0xf0]
call fcn.004fb4f8
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x20
jne 0x5012fb
cmp byte [esp + 0x53], 0
je 0x5012e1
mov dword [esp + 0xf4], 0x50
jmp 0x501d93
mov ebx, ecx
mov eax, dword [esp + 0xf0]
call fcn.004fb4e0
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x21
jne 0x50131c
mov ebx, dword [esp + 0x47]
mov eax, dword [esp + 0xf0]
call fcn.004fb4cc
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x42
jne 0x501347
mov ecx, dword [esp + 0xe0]
mov eax, dword [esp + 0xf0]
mov ebx, dword [esp + 0xdc]
call fcn.004fb36c
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x43
jne 0x501376
mov ebx, dword [esp + 0x47]
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xdc]
call fcn.004fb2b8
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x24
jne 0x5013aa
cmp byte [esp + 0x53], 0
je 0x501392
mov dword [esp + 0xf4], 0x50
jmp 0x501d93
mov eax, dword [esp + 0xf0]
call fcn.004fe96c
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x25
jne 0x5013de
cmp byte [esp + 0x53], 0
je 0x5013c6
mov dword [esp + 0xf4], 0x50
jmp 0x501d93
mov eax, dword [esp + 0xf0]
call fcn.004fb440
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x26
jne 0x501420
mov ebx, dword [esp + 0xe0]
mov eax, dword [esp + 0xdc]
call fcn.00481478
mov ebx, eax
cmp ebx, 0
je 0x501d93
mov eax, dword [esp + 0xf0]
call fcn.004fb430
mov dword [esp + 0xf4], eax
mov eax, ebx
call fcn.004b3428
jmp 0x501d93
cmp eax, 0x3f
jne 0x501506
mov eax, dword [esp + 0xf0]
mov dword [eax + 0x7d], 0
cmp byte [esp + 0x53], 0
je 0x50146b
push dword [esp + 0xe0]
push dword [esp + 0xe0]
push 0
push edi
push dword [esp + 0xe0]
call dword [0x546488]
add esp, 0x14
mov dword [esp + 0xf4], eax
jmp 0x501d93
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0xe0]
cmp dword [ebx + 0x95], eax
je 0x5014c0
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x91]
call fcn.004b3428
mov eax, dword [esp + 0xe0]
call fcn.004b3d54
mov ebx, dword [esp + 0xf0]
mov dword [ebx + 0x91], eax
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0xe0]
mov dword [ebx + 0x95], eax
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x91]
mov ebx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
call fcn.0042f617
mov ecx, dword [esp + 0xe0]
mov eax, dword [esp + 0xf0]
mov ebx, dword [esp + 0xdc]
call fcn.004fb3fc
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x40
jne 0x5015f9
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0x4f]
mov eax, dword [eax + 0x10]
mov dword [ebx + 0x7d], eax
cmp byte [esp + 0x53], 0
je 0x50155a
push dword [esp + 0xe0]
push dword [esp + 0xe0]
mov eax, dword [esp + 0x4f]
mov eax, dword [eax + 0x19]
push eax
push edi
push dword [esp + 0xe0]
call dword [0x546488]
add esp, 0x14
mov dword [esp + 0xf4], eax
jmp 0x501d93
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0xe0]
cmp dword [ebx + 0x95], eax
je 0x5015af
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x91]
call fcn.004b3428
mov eax, dword [esp + 0xe0]
call fcn.004b3d54
mov ebx, dword [esp + 0xf0]
mov dword [ebx + 0x91], eax
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0xe0]
mov dword [ebx + 0x95], eax
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x91]
mov ebx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
call fcn.0042f617
mov ebx, dword [esp + 0x47]
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xdc]
call fcn.004fb3b0
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x28
jne 0x501616
mov eax, dword [esp + 0xf0]
call fcn.004fad94
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x3c
jne 0x501703
mov ebx, dword [esp + 0xe0]
mov eax, dword [esp + 0xdc]
call fcn.00481478
mov esi, eax
cmp esi, 0
je 0x501d93
mov eax, esi
mov ebx, str.REGISTER
call fcn.00429604
cmp eax, 0
jne 0x5016ae
mov eax, str.TOPSPEED
mov ebx, 0x78d818
mov ecx, 0xa
call fcn.004c26f8
mov dword [esp + 0xe4], eax
mov eax, 0x78d818
call fcn.0042f564
mov dword [esp + 0xe8], eax
mov eax, str.TOPSPEED
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x45]
and eax, 1
cmp eax, 0
jne 0x5016f7
mov eax, dword [esp + 0x3b]
call fcn.004f9a38
mov dword [esp + 0xf0], 0
jmp 0x5016f7
cmp byte [esp + 0x53], 0
je 0x5016da
push dword [esp + 0x1f]
push dword [esp + 0x1f]
push 0
push esi
push edi
push dword [esp + 0xe4]
call dword [0x546488]
add esp, 0x18
mov dword [esp + 0xf4], eax
jmp 0x5016f7
mov ebx, esi
mov ecx, dword [esp + 0x1b]
mov edx, dword [esp + 0x1f]
mov eax, dword [esp + 0xf0]
call fcn.004fafa0
mov dword [esp + 0xf4], eax
mov eax, esi
call fcn.004b3428
jmp 0x501d93
cmp eax, 0x29
jne 0x501752
mov eax, dword [esp + 0xf0]
mov dword [eax + 0x7d], 0
cmp byte [esp + 0x53], 0
je 0x50173a
push edi
push dword [esp + 0xd4]
call dword [0x546488]
add esp, 8
mov dword [esp + 0xf4], eax
jmp 0x501d93
mov eax, dword [esp + 0xf0]
call fcn.004faf70
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x2a
jne 0x501792
mov eax, dword [esp + 0xf0]
mov dword [eax + 0x7d], 0
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0x4f]
mov dword [ebx + 0x9d], eax
mov ebx, dword [esp + 0x47]
mov eax, dword [esp + 0xf0]
call fcn.004faf14
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x2b
jne 0x5017d4
mov eax, dword [esp + 0xf0]
mov dword [eax + 0x7d], 0
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov ebx, dword [eax - 4]
mov eax, dword [esp + 0xf0]
mov dword [eax + 0xa1], ebx
mov eax, dword [esp + 0xf0]
call fcn.004faf2c
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x2c
jne 0x501832
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0x4f]
mov eax, dword [eax + 0x10]
mov dword [ebx + 0x7d], eax
cmp byte [esp + 0x53], 0
je 0x501816
mov eax, dword [esp + 0x47]
mov eax, dword [eax + 0x19]
push eax
push edi
push dword [esp + 0xd8]
call dword [0x546488]
add esp, 0xc
mov dword [esp + 0xf4], eax
jmp 0x501d93
mov ebx, dword [esp + 0x47]
mov eax, dword [esp + 0xf0]
call fcn.004faefc
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x2f
jne 0x50187b
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0x4f]
mov eax, dword [eax + 0x10]
mov dword [ebx + 0x7d], eax
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov ecx, dword [eax - 4]
mov eax, dword [esp + 0xf0]
mov dword [eax + 0xa1], ecx
mov ebx, dword [esp + 0x47]
mov eax, dword [esp + 0xf0]
call fcn.004faec8
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x2d
jne 0x5018d9
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0x4f]
mov eax, dword [eax + 0x10]
mov dword [ebx + 0x7d], eax
cmp byte [esp + 0x53], 0
je 0x5018bd
mov eax, dword [esp + 0x47]
mov eax, dword [eax + 0x19]
push eax
push edi
push dword [esp + 0xd8]
call dword [0x546488]
add esp, 0xc
mov dword [esp + 0xf4], eax
jmp 0x501d93
mov ebx, dword [esp + 0x47]
mov eax, dword [esp + 0xf0]
call fcn.004faeb0
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x2e
jne 0x501a83
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0x4f]
mov eax, dword [eax + 0x10]
mov dword [ebx + 0x7d], eax
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov ecx, dword [eax - 4]
mov eax, dword [esp + 0xf0]
mov dword [eax + 0xa1], ecx
mov ebx, dword [esp + 0x47]
mov eax, dword [esp + 0xf0]
call fcn.004fae74
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp dword [esp + 0xdc], 0
jne 0x501935
jmp 0x501a22
cmp dword [esp + 0xe0], 0
je 0x501a22
mov ecx, dword [esp + 0x3b]
mov dword [esp + 0xc4], ecx
movzx eax, byte [ecx + 0x1c]
and eax, 0x10
cmp eax, 0
je 0x501961
call fcn.0053b554
jmp 0x501966
mov eax, 0
mov dword [esp + 0xc8], eax
lea ebx, [esp + 0xc4]
mov eax, 0x78d7c0
call fcn.00518b84
mov edx, eax
mov ebx, dword [esp + 0xe0]
mov eax, dword [esp + 0xdc]
call fcn.00481478
mov dword [edx + 0x10], eax
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x75]
call fcn.004f5ef0
mov dword [edx + 0x14], eax
mov eax, ecx
mov ebx, dword [esp + 0x33]
call fcn.004ff6a8
mov dword [esp + 0xf4], eax
cmp dword [esp + 0xf4], 0
je 0x5019f2
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x71]
call fcn.004b3428
mov eax, dword [esp + 0xf0]
mov dword [eax + 0x71], 0
mov ebx, edx
mov eax, 0x78d7c0
call fcn.005187fc
jmp 0x501bb6
or byte [ecx + 0x38], 1
mov byte [0x5673b4], 1
jmp 0x501bb6
cmp byte [ecx], 0
jne 0x501a09
jmp 0x501a44
mov dword [esp + 0xf4], 0x60
jmp 0x501a77
mov al, byte [esp + 0x53]
cmp al, 0
je 0x501926
cmp al, 0
je 0x501bb6
mov ebx, dword [esp + 0xe0]
mov eax, dword [esp + 0xdc]
call fcn.00481478
mov ecx, eax
cmp ecx, 0
jne 0x501a02
mov ebx, dword [esp + 0x3b]
mov eax, ebx
call fcn.004ff638
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x71]
call fcn.004b3428
mov eax, dword [esp + 0xf0]
mov dword [eax + 0x71], 0
and byte [ebx + 0x38], 0xfe
mov byte [0x5673b4], 0
mov eax, ecx
call fcn.004b3428
jmp 0x501bb6
cmp eax, 0x47
jne 0x501bce
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov edi, dword [eax - 4]
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xe8], eax
mov ebx, dword [esp + 0xe0]
inc ebx
mov eax, 1
call fcn.004b363c
mov ebx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
call fcn.0042f617
mov dword [esp + 0xe4], eax
mov ebx, dword [esp + 0xd8]
mov eax, dword [esp + 0xd4]
call fcn.00481478
mov esi, eax
cmp esi, 0
je 0x501bbd
mov eax, esi
call fcn.004c2b08
mov ecx, eax
cmp ecx, 0x7346
je 0x501a16
cmp byte [esp + 0x53], 0
je 0x501b68
mov eax, dword [esp + 0xdc]
mov ebx, dword [esp + 0xe0]
call fcn.00434fc0
mov eax, dword [esp + 0xd4]
mov ebx, dword [esp + 0xd8]
call fcn.00434fc0
lea eax, [esp + 0xc0]
push eax
push edi
push ecx
push dword [esp + 0x37]
push dword [esp + 0xe0]
call dword [0x546488]
add esp, 0x14
mov dword [esp + 0xf4], eax
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0xc0]
mov dword [ebx + 0x45], eax
jmp 0x501bb6
push dword [esp + 0xe4]
push dword [esp + 0xec]
push edx
mov ebx, esi
mov ecx, edi
mov eax, dword [esp + 0xfc]
mov edx, str.TOPSPEED
call fcn.0050243c
cmp eax, 0
jne 0x501bb6
push dword [esp + 0xe8]
mov ebx, esi
mov ecx, edi
mov eax, dword [esp + 0xf4]
mov edx, dword [esp + 0xe8]
call fcn.004fab10
mov dword [esp + 0xf4], eax
mov eax, esi
call fcn.004b3428
mov eax, dword [esp + 0xe4]
call fcn.004b3428
jmp 0x501d93
cmp eax, 0x55
jne 0x501c6c
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov esi, dword [eax - 4]
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xe8], eax
mov ebx, dword [esp + 0xe0]
inc ebx
mov eax, 1
call fcn.004b363c
mov ebx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
call fcn.0042f617
mov dword [esp + 0xe4], eax
mov ebx, dword [esp + 0xe0]
mov eax, dword [esp + 0xdc]
call fcn.00481478
mov ebx, eax
cmp ebx, 0
je 0x501c5b
push dword [esp + 0xe8]
push edx
mov eax, dword [esp + 0x4f]
mov ecx, esi
mov edx, dword [esp + 0xec]
call fcn.0050224c
cmp eax, 0
jne 0x501c5b
mov eax, ebx
call fcn.004b3428
mov eax, dword [esp + 0xe4]
call fcn.004b3428
jmp 0x501d93
cmp eax, 0x31
jne 0x501c93
mov eax, dword [esp + 0x43]
lea eax, [eax + 4]
mov ebx, dword [eax - 4]
mov eax, dword [esp + 0xf0]
call fcn.004fae20
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x38
jne 0x501cc7
cmp byte [esp + 0x53], 0
je 0x501caf
mov dword [esp + 0xf4], 0x50
jmp 0x501d93
mov eax, dword [esp + 0xf0]
call fcn.004fbb20
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x32
jne 0x501ce4
mov eax, dword [esp + 0xf0]
call fcn.004fadfc
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x3a
jne 0x501d01
mov eax, dword [esp + 0xf0]
call fcn.004fadec
mov dword [esp + 0xf4], eax
jmp 0x501d93
cmp eax, 0x5b
jne 0x501d14
mov eax, fcn.004ff838
mov dword [esp + 0xec], eax
jmp 0x501d93
cmp eax, 0x49
jne 0x501d88
mov dword [esp + 0xbc], 0
lea ebx, [esp + 0xbc]
mov eax, dword [esp + 0xf0]
call fcn.004ff82c
mov dword [esp + 0xf4], eax
cmp dword [esp + 0xbc], 0
je 0x501d93
mov eax, dword [esp + 0xbc]
mov ebx, 0x2d
sub edx, edx
div ebx
mov ecx, eax
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x21]
mov ebx, 0x2d
sub edx, edx
div ebx
sub ecx, eax
inc ecx
mov dword [esp + 0xec], ecx
jmp 0x501d93
mov eax, dword [esp + 0xf0]
cmp byte [eax + 0x52], 0
jne 0x501d9f
jmp 0x501de7
mov dword [esp + 0xf4], 0x50
cmp dword [esp + 0xf0], 0
jne 0x501d79
jmp 0x501de7
mov eax, dword [esp + 0x3b]
movzx eax, byte [eax + 0x38]
and eax, 2
cmp eax, 0
jne 0x501de7
mov ebx, dword [esp + 0x17]
cmp ebx, 0
jne 0x501dbf
call fcn.0041d96c
mov ebx, eax
call fcn.0041d96c
sub eax, ebx
push eax
push dword [esp + 0xf8]
mov ebx, dword [esp + 0x4f]
mov edx, dword [esp + 0x33]
mov eax, dword [esp + 0xf8]
mov ecx, 0x567288
call fcn.0047f79c
mov eax, 0x78d7dc
call fcn.004f62bb
mov ebx, eax
cmp ebx, 0
je 0x501e06
mov eax, dword [esp + 0xf0]
call fcn.004faa18
jmp 0x501e2d
mov eax, dword [esp + 0x3b]
movzx eax, byte [eax + 0x38]
and eax, 1
cmp eax, 0
jne 0x501e28
mov ebx, dword [esp + 0x2b]
mov eax, dword [esp + 0xf0]
call fcn.004fdf64
jmp 0x501e2d
mov eax, 0
cmp dword [esp + 0xf4], 0
jne 0x501e3e
mov dword [esp + 0xf4], eax
mov ebx, dword [esp + 0x2f]
mov eax, 0x78d7dc
mov ecx, 0x3c
call fcn.0042f617
cmp dword [esp + 0xdc], 0
je 0x501e67
lea eax, [esp + 0xdc]
call fcn.00421488
cmp dword [esp + 0xd4], 0
je 0x501e7d
lea eax, [esp + 0xd4]
call fcn.00421488
cmp dword [esp + 0xf0], 0
je 0x501ea6
push dword [esp + 0x4b]
mov ebx, dword [esp + 0x4b]
mov ecx, dword [esp + 0x2f]
mov eax, dword [esp + 0xf4]
mov edx, dword [esp + 0xf8]
call fcn.0047ee98
mov esi, dword [esp + 0x2b]
mov eax, esi
cmp eax, 0x48
je 0x501ed4
cmp eax, 0x56
je 0x501ed4
cmp eax, 0x4f
je 0x501ed4
cmp eax, 0x17
je 0x501ed4
cmp eax, 0x3d
je 0x501ed4
cmp eax, 0x3e
je 0x501ed4
cmp eax, 0x60
je 0x501ed4
cmp eax, 0x3c
jne 0x501f02
cmp dword [esp + 0xf0], 0
je 0x501ef3
mov eax, dword [esp + 0xe4]
mov ebx, dword [esp + 0xe8]
call fcn.00434fc0
jmp 0x501f02
mov eax, 0x567294
mov ebx, 0
call fcn.00434fc0
cmp dword [esp + 0xf0], 0
je 0x5020f6
cmp dword [esp + 0xf4], 0xffffffff
je 0x501f41
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0xf4]
mov dword [ebx + 0x4d], eax
jmp 0x501f4f
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x41]
and eax, 1
cmp eax, 0
jne 0x501f65
jmp 0x501f6a
mov eax, dword [esp + 0xf0]
mov dword [eax + 0x4d], 0
cmp dword [esp + 0xf4], 0
je 0x501f2d
jmp 0x501f6a
cmp esi, 0x1f
je 0x501fb7
jmp 0x50207b
call fcn.00421ea4
cmp dword [esp + 0xf4], 0x2f
jne 0x501f7f
mov eax, dword [esp + 0xf0]
mov byte [eax + 0x51], 1
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x41]
and eax, 4
cmp eax, 0
je 0x50207b
mov ebx, dword [esp + 0xf0]
mov eax, esi
mov dword [ebx + 0x35], eax
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0xf4]
mov dword [ebx + 0x39], eax
cmp esi, 0x18
jne 0x501f5b
mov eax, dword [esp + 0xf0]
cmp dword [eax + 0x7d], 0
je 0x501ff2
mov eax, dword [esp + 0xf0]
mov ebx, dword [eax + 0x7d]
mov ecx, dword [esp + 0x1b]
mov edx, dword [esp + 0x1f]
mov eax, dword [esp + 0xf0]
call fcn.004fb520
jmp 0x502006
cmp esi, 0xe
je 0x502128
jmp 0x502133
mov ebx, dword [esp + 0x1b]
mov ecx, dword [esp + 0x1f]
mov eax, dword [esp + 0xf0]
call fcn.004fb5ac
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x85]
cmp dword [esp + 0xe8], eax
je 0x50205b
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x81]
call fcn.004b3428
mov eax, dword [esp + 0xe8]
call fcn.004b3d54
mov ebx, dword [esp + 0xf0]
mov dword [ebx + 0x81], eax
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0xe8]
mov dword [ebx + 0x85], eax
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x81]
mov ebx, dword [esp + 0xe4]
mov ecx, dword [esp + 0xe8]
call fcn.0042f617
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x41]
and eax, 0x10
cmp eax, 0
je 0x502099
mov ebx, dword [esp + 0xf0]
mov eax, esi
mov dword [ebx + 0x3d], eax
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x41]
and eax, 0x20
cmp eax, 0
je 0x5020df
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + 0x89]
call fcn.004b3428
mov eax, dword [esp + 0xf0]
mov dword [eax + 0x89], 0
mov eax, dword [esp + 0xf0]
mov dword [eax + 0x8d], 0
cmp esi, 0x68
jne 0x5020f6
mov ebx, dword [esp + 0x3b]
mov eax, ebx
call fcn.004f9a38
mov eax, ebx
call fcn.004363c8
cmp dword [esp + 0xf4], 0
je 0x502133
cmp dword [esp + 0xf4], 0xffffffff
je 0x50211f
mov eax, dword [esp + 0xf4]
call fcn.00421f94
mov eax, dword [esp + 0x3b]
call fcn.00421d80
cmp esi, 2
jne 0x501fe4
mov dword [esp + 0xec], 1
mov eax, dword [esp + 0xec]
pop edi
pop esi
pop edx
pop ecx
pop ebx
add esp, 0xe4
ret