Function at 0x45a741
Capabilities:
Parse credit card information

Disassembly:
xor ebx, ebx
mov edx, dword [ebp - 0x4c]
cmp dword [ebp - 0x44], 0
mov bl, byte [edx]
je 0x45a2c7
test ebx, ebx
jne 0x45badb
test byte [ebp - 0x3c], 8
je 0x45a2fd
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + 0xc]
test byte [edx + ebx], 1
jne 0x45bc41
cmp ebx, 0x23
jne 0x45a2fd
inc dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x4c]
xor ebx, ebx
mov bl, byte [ecx]
test ebx, ebx
je 0x45a2f5
cmp ebx, 0xa
jne 0x45a2e2
test ebx, ebx
jne 0x45bc41
mov eax, ebx
cmp eax, 0x2e
jg 0x45a342
je 0x45a3ce
cmp eax, 0x29
jg 0x45a32d
je 0x45a378
sub eax, 1
jb 0x45a378
sub eax, 0x23
je 0x45a3c0
sub eax, 4
je 0x45b0f0
jmp 0x45badb
sub eax, 0x2a
je 0x45aa75
dec eax
je 0x45aa83
jmp 0x45badb
cmp eax, 0x5e
jg 0x45a367
je 0x45a39f
sub eax, 0x3f
je 0x45aa93
sub eax, 0x1c
je 0x45a3f3
dec eax
je 0x45b9eb
jmp 0x45badb
sub eax, 0x7b
je 0x45aa38
dec eax
je 0x45a378
jmp 0x45badb
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x1c]
mov dword [edx], ecx
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp - 0x20]
mov dword [eax], edx
mov ecx, dword [ebp + 0x10]
mov dword [ecx], esi
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp - 0x4c]
mov dword [eax], edx
mov eax, 1
jmp 0x45bc53
test byte [ebp - 0x3c], 2
je 0x45a3b2
cmp dword [ebp - 0x1c], 0xfffffffe
jne 0x45a3b2
mov dword [ebp - 0x1c], 0xffffffff
xor edx, edx
mov dword [ebp - 0x54], edx
mov byte [esi], 0x10
inc esi
jmp 0x45bc41
xor ecx, ecx
mov dword [ebp - 0x54], ecx
mov byte [esi], 0x11
inc esi
jmp 0x45bc41
cmp dword [ebp - 0x1c], 0xfffffffe
jne 0x45a3db
mov dword [ebp - 0x1c], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x54], esi
mov byte [esi], 0xb
inc esi
jmp 0x45bc41
mov dword [ebp - 0x54], esi
mov ecx, dword [ebp - 0x4c]
cmp byte [ecx + 1], 0x3a
je 0x45a411
mov eax, dword [ebp - 0x4c]
cmp byte [eax + 1], 0x2e
je 0x45a411
mov edx, dword [ebp - 0x4c]
cmp byte [edx + 1], 0x3d
jne 0x45a448
mov ecx, dword [ebp + 0x28]
lea eax, [ebp - 0x50]
push ecx
push eax
mov edx, dword [ebp - 0x4c]
push edx
call fcn.0045a13c
add esp, 0xc
test eax, eax
je 0x45a448
mov ecx, dword [ebp - 0x4c]
cmp byte [ecx + 1], 0x3a
jne 0x45a439
mov eax, 0x4704fe
jmp 0x45a43e
mov eax, 0x470534
mov edx, dword [ebp + 0x18]
mov dword [edx], eax
jmp 0x45bc49
inc dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x4c]
xor ebx, ebx
mov bl, byte [ecx]
cmp ebx, 0x5e
jne 0x45a46a
mov dword [ebp - 0x5c], 1
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
xor ebx, ebx
mov bl, byte [eax]
jmp 0x45a46f
xor eax, eax
mov dword [ebp - 0x5c], eax
xor edx, edx
lea ecx, [ebp - 0x128]
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x68], 0xffffffff
push 0x20
push 0
push ecx
call fcn.00458ea0
add esp, 0xc
cmp dword [ebp - 0x44], 0
je 0x45a4b7
cmp ebx, 0x5c
jne 0x45a904
mov eax, dword [ebp - 0x4c]
cmp byte [eax + 1], 0x45
jne 0x45a904
xor edx, edx
mov dword [ebp - 0x44], edx
inc dword [ebp - 0x4c]
jmp 0x45a955
cmp ebx, 0x5b
jne 0x45a672
mov ecx, dword [ebp - 0x4c]
cmp byte [ecx + 1], 0x3a
je 0x45a4df
mov eax, dword [ebp - 0x4c]
cmp byte [eax + 1], 0x2e
je 0x45a4df
mov edx, dword [ebp - 0x4c]
cmp byte [edx + 1], 0x3d
jne 0x45a672
mov ecx, dword [ebp + 0x28]
lea eax, [ebp - 0x50]
push ecx
push eax
mov edx, dword [ebp - 0x4c]
push edx
call fcn.0045a13c
add esp, 0xc
test eax, eax
je 0x45a672
xor ecx, ecx
mov dword [ebp - 0x80], ecx
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + 8]
mov dword [ebp - 0x8c], edx
mov ecx, dword [ebp - 0x4c]
cmp byte [ecx + 1], 0x3a
je 0x45a523
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x47055f
jmp 0x45bc49
add dword [ebp - 0x4c], 2
mov edx, dword [ebp - 0x4c]
cmp byte [edx], 0x5e
jne 0x45a539
mov dword [ebp - 0x80], 1
inc dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
sub ecx, dword [ebp - 0x4c]
push ecx
mov eax, dword [ebp - 0x4c]
push eax
call fcn.0045a184
add esp, 8
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0
jge 0x45a569
mov edx, dword [ebp + 0x18]
mov dword [edx], 0x47058a
jmp 0x45bc49
test byte [ebp - 0x3c], 1
je 0x45a580
cmp dword [ebp - 0x84], 2
jg 0x45a580
xor ecx, ecx
mov dword [ebp - 0x84], ecx
mov eax, dword [ebp - 0x84]
xor edx, edx
lea eax, [eax + eax*2]
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x88], edx
push 5
push 0x4705a3
mov ecx, dword [ebp - 0x4c]
push ecx
call fcn.004590ac
add esp, 0xc
test eax, eax
sete al
and eax, 1
mov dword [ebp - 0x90], eax
mov edx, dword [ebp - 0x84]
add edx, dword [ebp - 0x88]
mov ecx, dword [edx*4 + 0x46fdc0]
mov dword [ebp - 0x94], ecx
cmp dword [ebp - 0x94], 0
jl 0x45a65f
cmp dword [ebp - 0x80], 0
je 0x45a61a
xor ebx, ebx
lea edx, [ebp - 0x128]
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x94]
add eax, ecx
mov cl, byte [eax]
not cl
or byte [edx], cl
inc ebx
inc edx
inc eax
cmp ebx, 0x20
jl 0x45a5fa
cmp dword [ebp - 0x90], 0
je 0x45a64c
or byte [ebp - 0x127], 0x3c
jmp 0x45a64c
xor ebx, ebx
lea eax, [ebp - 0x128]
mov edx, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x94]
add edx, ecx
mov cl, byte [edx]
or byte [eax], cl
inc ebx
inc eax
inc edx
cmp ebx, 0x20
jl 0x45a630
cmp dword [ebp - 0x90], 0
je 0x45a64c
and byte [ebp - 0x127], 0xc3
inc dword [ebp - 0x88]
cmp dword [ebp - 0x88], 3
jl 0x45a597
mov eax, dword [ebp - 0x50]
inc eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x64], 0xa
jmp 0x45a955
cmp ebx, 0x5c
jne 0x45a819
push 1
mov eax, dword [ebp - 0x3c]
push eax
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx]
push ecx
mov eax, dword [ebp + 0x18]
push eax
lea edx, [ebp - 0x4c]
push edx
call fcn.004599a8
add esp, 0x14
mov ebx, eax
mov eax, ebx
neg eax
cmp eax, 4
jne 0x45a6a7
mov ebx, 8
mov eax, ebx
neg eax
cmp eax, 0x10
jne 0x45a6d7
mov edx, dword [ebp - 0x4c]
cmp byte [edx + 1], 0x5c
jne 0x45a6cb
mov ecx, dword [ebp - 0x4c]
cmp byte [ecx + 2], 0x45
jne 0x45a6cb
add dword [ebp - 0x4c], 2
jmp 0x45a955
mov dword [ebp - 0x44], 1
jmp 0x45a955
test ebx, ebx
jge 0x45a819
mov eax, dword [ebp + 0x28]
neg ebx
mov edx, dword [eax + 8]
add ebx, 0xfffffffb
mov dword [ebp - 0x98], edx
cmp ebx, 5
mov dword [ebp - 0x64], 0xa
ja case.default.0x45a700
jmp dword [ebx*4 + 0x45a707]
xor ebx, ebx
mov eax, dword [ebp - 0x98]
add eax, 0x40
lea edx, [ebp - 0x128]
mov cl, byte [eax]
or byte [edx], cl
inc ebx
inc edx
inc eax
cmp ebx, 0x20
jl 0x45a730
jmp 0x45a955
xor ebx, ebx
mov edx, dword [ebp - 0x98]
add edx, 0x40
lea eax, [ebp - 0x128]
mov cl, byte [edx]
not cl
or byte [eax], cl
inc ebx
inc eax
inc edx
cmp ebx, 0x20
jl 0x45a752
jmp 0x45a955
xor ebx, ebx
mov eax, dword [ebp - 0x98]
add eax, 0xa0
lea edx, [ebp - 0x128]
mov cl, byte [eax]
or byte [edx], cl
inc ebx
inc edx
inc eax
cmp ebx, 0x20
jl 0x45a778
jmp 0x45a955
xor ebx, ebx
mov edx, dword [ebp - 0x98]
add edx, 0xa0
lea eax, [ebp - 0x128]
mov cl, byte [edx]
not cl
or byte [eax], cl
inc ebx
inc eax
inc edx
cmp ebx, 0x20
jl 0x45a79d
jmp 0x45a955
xor ebx, ebx
lea edx, [ebp - 0x128]
mov eax, dword [ebp - 0x98]
mov cl, byte [eax]
or byte [edx], cl
inc ebx
inc edx
inc eax
cmp ebx, 0x20
jl 0x45a7be
and byte [ebp - 0x127], 0xf7
jmp 0x45a955
xor ebx, ebx
lea eax, [ebp - 0x128]
mov edx, dword [ebp - 0x98]
mov cl, byte [edx]
not cl
or byte [eax], cl
inc ebx
inc eax
inc edx
cmp ebx, 0x20
jl 0x45a7e4
or byte [ebp - 0x127], 8
jmp 0x45a955
test byte [ebp - 0x3c], 0x40
je 0x45a812
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4705a9
jmp 0x45bc49
mov eax, dword [ebp - 0x4c]
xor ebx, ebx
mov bl, byte [eax]
mov eax, dword [ebp - 0x4c]
cmp byte [eax + 1], 0x2d
jne 0x45a904
mov edx, dword [ebp - 0x4c]
cmp byte [edx + 2], 0x5d
je 0x45a904
add dword [ebp - 0x4c], 2
mov ecx, dword [ebp - 0x4c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5c
jne 0x45a886
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x9c], edx
push 1
mov ecx, dword [ebp - 0x3c]
push ecx
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
push edx
mov ecx, dword [ebp + 0x18]
push ecx
lea eax, [ebp - 0x4c]
push eax
call fcn.004599a8
add esp, 0x14
test eax, eax
jge 0x45a886
cmp eax, 0xfffffffc
jne 0x45a878
mov eax, 8
jmp 0x45a886
mov edx, dword [ebp - 0x9c]
add edx, 0xfffffffe
mov dword [ebp - 0x4c], edx
jmp 0x45a904
cmp ebx, eax
jle 0x45a898
mov ecx, dword [ebp + 0x18]
mov dword [ecx], 0x4705d4
jmp 0x45bc49
cmp eax, ebx
jl 0x45a955
mov ecx, ebx
and ecx, 7
mov dl, 1
shl dl, cl
mov ecx, ebx
test ecx, ecx
jns 0x45a8b2
add ecx, 7
sar ecx, 3
or byte [ebp + ecx - 0x128], dl
test byte [ebp - 0x3c], 1
je 0x45a8f7
mov edx, dword [ebp + 0x28]
mov edx, dword [edx + 4]
xor ecx, ecx
mov cl, byte [edx + ebx]
mov dword [ebp - 0xa0], ecx
mov ecx, dword [ebp - 0xa0]
and ecx, 7
mov dl, 1
shl dl, cl
mov ecx, dword [ebp - 0xa0]
test ecx, ecx
jns 0x45a8ed
add ecx, 7
sar ecx, 3
or byte [ebp + ecx - 0x128], dl
inc dword [ebp - 0x64]
mov dword [ebp - 0x68], ebx
inc ebx
cmp eax, ebx
jge 0x45a8a0
jmp 0x45a955
mov ecx, ebx
mov al, 1
and ecx, 7
mov edx, ebx
shl al, cl
test edx, edx
jns 0x45a916
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x128], al
test byte [ebp - 0x3c], 1
je 0x45a94f
mov eax, dword [ebp + 0x28]
xor ecx, ecx
mov edx, dword [eax + 4]
mov al, 1
mov cl, byte [edx + ebx]
mov ebx, ecx
mov ecx, ebx
mov edx, ebx
and ecx, 7
shl al, cl
test edx, edx
jns 0x45a945
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x128], al
inc dword [ebp - 0x64]
mov dword [ebp - 0x68], ebx
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
xor ebx, ebx
mov bl, byte [eax]
cmp ebx, 0x5d
jne 0x45a48e
cmp dword [ebp - 0x44], 0
jne 0x45a48e
cmp dword [ebp - 0x64], 1
jne 0x45a9dd
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x5c], 0
je 0x45a99d
cmp dword [ebp - 0x1c], 0xfffffffe
jne 0x45a991
mov dword [ebp - 0x1c], 0xffffffff
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x28], edx
mov byte [esi], 0x13
inc esi
jmp 0x45a9d2
cmp dword [ebp - 0x1c], 0xfffffffe
jne 0x45a9b5
mov dword [ebp - 0x28], 0xffffffff
mov ecx, dword [ebp - 0x68]
or ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], ecx
jmp 0x45a9ca
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x68]
mov ecx, dword [ebp + 0x28]
or edx, dword [ebp - 0x2c]
or edx, dword [ecx + 0x28]
mov dword [ebp - 0x20], edx
mov byte [esi], 0x12
inc esi
mov byte [esi], 1
inc esi
mov al, byte [ebp - 0x68]
mov byte [esi], al
inc esi
jmp 0x45bc41
cmp dword [ebp - 0x1c], 0xfffffffe
jne 0x45a9ea
mov dword [ebp - 0x1c], 0xffffffff
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x28], edx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x5c], 0
je 0x45aa1a
mov byte [esi], 0x38
inc esi
xor ebx, ebx
mov edx, esi
lea eax, [ebp - 0x128]
mov cl, byte [eax]
not cl
mov byte [edx], cl
inc ebx
inc edx
inc eax
cmp ebx, 0x20
jl 0x45aa0a
jmp 0x45aa30
mov byte [esi], 0x37
inc esi
push 0x20
lea eax, [ebp - 0x128]
push eax
push esi
call fcn.00458ebc
add esp, 0xc
add esi, 0x20
jmp 0x45bc41
mov edx, dword [ebp - 0x4c]
inc edx
push edx
call fcn.00459b64
pop ecx
test eax, eax
je 0x45badb
mov ecx, dword [ebp + 0x18]
push ecx
lea eax, [ebp - 0xc]
push eax
lea edx, [ebp - 8]
push edx
mov ecx, dword [ebp - 0x4c]
inc ecx
push ecx
call fcn.00459bdc
add esp, 0x10
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 0x18]
cmp dword [eax], 0
jne 0x45bc49
jmp 0x45aa9f
xor edx, edx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], 0xffffffff
jmp 0x45aa9f
mov dword [ebp - 8], 1
mov dword [ebp - 0xc], 0xffffffff
jmp 0x45aa9f
xor ecx, ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], 1
cmp dword [ebp - 0x54], 0
jne 0x45aab3
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4705fa
jmp 0x45bc49
cmp dword [ebp - 8], 0
jne 0x45aac5
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0xc]
jne 0x45aad1
xor edx, edx
jmp 0x45aad6
mov edx, 0x200
mov dword [ebp - 0x30], edx
xor eax, eax
mov dword [ebp - 4], eax
xor ecx, ecx
mov dword [ebp - 0x60], ecx
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x40], eax
mov edx, dword [ebp - 0x4c]
cmp byte [edx + 1], 0x2b
jne 0x45ab00
xor edi, edi
mov dword [ebp - 0x60], 1
inc dword [ebp - 0x4c]
jmp 0x45ab14
mov eax, dword [ebp - 0x4c]
cmp byte [eax + 1], 0x3f
jne 0x45ab11
mov edi, dword [ebp - 0x18]
inc dword [ebp - 0x4c]
jmp 0x45ab14
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x54]
cmp byte [eax], 0x3b
jne 0x45ab70
push 3
mov edx, dword [ebp - 0x54]
push edx
mov ecx, dword [ebp - 0x54]
add ecx, 3
push ecx
call fcn.00458ed8
mov eax, dword [ebp - 0x54]
add esi, 3
mov edx, esi
add esp, 0xc
mov byte [eax], 0x4c
mov eax, esi
sub edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x54]
sar edx, 8
mov byte [ecx + 1], dl
mov ecx, esi
sub eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x54]
and al, 0xff
mov byte [edx + 2], al
mov byte [esi], 0x3e
sub ecx, dword [ebp - 0x54]
mov eax, esi
sar ecx, 8
mov byte [esi + 1], cl
sub eax, dword [ebp - 0x54]
and al, 0xff
mov byte [esi + 2], al
add esi, 3
mov edx, dword [ebp - 0x54]
cmp byte [edx], 0x12
jne 0x45abab
dec esi
mov eax, dword [ebp - 0x54]
add eax, 2
xor ebx, ebx
mov bl, byte [esi]
cmp esi, eax
jne 0x45aba0
cmp dword [ebp - 8], 1
mov esi, dword [ebp - 0x54]
jle 0x45abe4
mov edx, dword [ebp + 0x28]
mov eax, dword [ebp - 0x2c]
or eax, ebx
or eax, dword [edx + 0x28]
mov dword [ebp - 0x20], eax
jmp 0x45abe4
mov ecx, dword [ebp - 0x54]
dec byte [ecx + 1]
mov dword [ebp - 0x40], esi
jmp 0x45abe4
mov eax, dword [ebp - 0x54]
cmp byte [eax], 0x13
jne 0x45abc7
mov dword [ebp - 4], 9
mov edx, dword [ebp - 0x54]
xor ebx, ebx
mov bl, byte [edx + 1]
mov esi, dword [ebp - 0x54]
jmp 0x45abe4
mov eax, dword [ebp - 0x54]
cmp byte [eax], 0xd
jae 0x45ace3
mov dword [ebp - 4], 0x12
mov edx, dword [ebp - 0x54]
xor ebx, ebx
mov bl, byte [edx]
mov esi, dword [ebp - 0x54]
cmp dword [ebp - 0xc], 0
je 0x45b0dd
add edi, dword [ebp - 4]
cmp dword [ebp - 8], 0
jne 0x45ac3d
cmp dword [ebp - 0xc], 0xffffffff
jne 0x45ac09
mov eax, edi
add al, 0x14
mov byte [esi], al
inc esi
jmp 0x45acdb
cmp dword [ebp - 0xc], 1
jne 0x45ac1c
mov edx, edi
add dl, 0x18
mov byte [esi], dl
inc esi
jmp 0x45acdb
mov ecx, edi
add cl, 0x1a
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0xc]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0xc]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
jmp 0x45acdb
cmp dword [ebp - 8], 1
jne 0x45ac56
cmp dword [ebp - 0xc], 0xffffffff
jne 0x45ac56
mov ecx, edi
add cl, 0x16
mov byte [esi], cl
inc esi
jmp 0x45acdb
cmp dword [ebp - 8], 1
je 0x45ac7a
mov al, byte [ebp - 4]
add al, 0x1c
mov byte [esi], al
inc esi
mov edx, dword [ebp - 8]
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 8]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
jmp 0x45ac9d
mov eax, dword [ebp - 0x54]
cmp byte [eax], 0x12
jne 0x45ac94
cmp esi, dword [ebp - 0x54]
jne 0x45ac8c
add esi, 2
jmp 0x45ac9d
mov edx, dword [ebp - 0x54]
inc byte [edx + 1]
jmp 0x45ac9d
mov ecx, dword [ebp - 0x54]
cmp byte [ecx], 0x13
jne 0x45ac9d
inc esi
cmp dword [ebp - 0xc], 0
jge 0x45acaf
mov byte [esi], bl
inc esi
mov eax, edi
add al, 0x14
mov byte [esi], al
inc esi
jmp 0x45acdb
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 8]
je 0x45acdb
mov byte [esi], bl
inc esi
mov ecx, dword [ebp - 8]
mov eax, edi
sub dword [ebp - 0xc], ecx
add al, 0x1a
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0xc]
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 0xc]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
mov byte [esi], bl
inc esi
jmp 0x45b066
mov eax, dword [ebp - 0x54]
cmp byte [eax], 0x37
je 0x45acff
mov edx, dword [ebp - 0x54]
cmp byte [edx], 0x38
je 0x45acff
mov ecx, dword [ebp - 0x54]
cmp byte [ecx], 0x3a
jne 0x45ad96
cmp dword [ebp - 0xc], 0
jne 0x45ad0d
mov esi, dword [ebp - 0x54]
jmp 0x45b0dd
cmp dword [ebp - 8], 0
jne 0x45ad25
cmp dword [ebp - 0xc], 0xffffffff
jne 0x45ad25
mov eax, edi
add al, 0x2f
mov byte [esi], al
inc esi
jmp 0x45b066
cmp dword [ebp - 8], 1
jne 0x45ad3e
cmp dword [ebp - 0xc], 0xffffffff
jne 0x45ad3e
mov edx, edi
add dl, 0x31
mov byte [esi], dl
inc esi
jmp 0x45b066
cmp dword [ebp - 8], 0
jne 0x45ad57
cmp dword [ebp - 0xc], 1
jne 0x45ad57
mov ecx, edi
add cl, 0x33
mov byte [esi], cl
inc esi
jmp 0x45b066
mov eax, edi
add al, 0x35
mov byte [esi], al
inc esi
mov edx, dword [ebp - 8]
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 8]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
cmp dword [ebp - 0xc], 0xffffffff
jne 0x45ad7d
xor eax, eax
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0xc]
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 0xc]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
jmp 0x45b066
mov eax, dword [ebp - 0x54]
cmp byte [eax], 0x4c
jae 0x45adb2
mov edx, dword [ebp - 0x54]
cmp byte [edx], 0x46
je 0x45adb2
mov ecx, dword [ebp - 0x54]
cmp byte [ecx], 0x47
jne 0x45b058
xor eax, eax
mov dword [ebp - 0xa8], eax
mov edx, esi
sub edx, dword [ebp - 0x54]
mov dword [ebp - 0xac], edx
xor ebx, ebx
cmp dword [ebp - 0xc], 0xffffffff
jne 0x45ae10
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0xb0], eax
mov edx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0xb0]
xor ecx, ecx
mov cl, byte [edx + 1]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + 2]
or ecx, edx
add dword [ebp - 0xb0], ecx
mov ecx, dword [ebp - 0xb0]
cmp byte [ecx], 0x3e
jne 0x45add6
mov eax, esi
sub eax, dword [ebp - 0xb0]
mov dword [ebp - 0xa8], eax
cmp dword [ebp - 8], 0
jne 0x45aef9
cmp dword [ebp - 0xc], 0
jne 0x45ae28
mov esi, dword [ebp - 0x54]
jmp 0x45b0dd
cmp dword [ebp - 0xc], 1
jg 0x45ae71
mov byte [esi], 0
mov eax, dword [ebp + 0x28]
push eax
mov edx, dword [ebp - 0x58]
push edx
push 1
mov ecx, dword [ebp - 0x54]
push ecx
call fcn.0045a1d8
add esp, 0x10
mov eax, dword [ebp - 0xac]
push eax
mov edx, dword [ebp - 0x54]
push edx
mov ecx, dword [ebp - 0x54]
inc ecx
push ecx
call fcn.00458ed8
mov edx, dword [ebp - 0x54]
mov eax, edi
add al, 0x49
add esp, 0xc
mov byte [edx], al
inc esi
inc dword [ebp - 0x54]
jmp 0x45aef4
mov byte [esi], 0
mov ecx, dword [ebp + 0x28]
push ecx
mov eax, dword [ebp - 0x58]
push eax
push 4
mov edx, dword [ebp - 0x54]
push edx
call fcn.0045a1d8
add esp, 0x10
mov ecx, dword [ebp - 0xac]
push ecx
mov eax, dword [ebp - 0x54]
push eax
mov edx, dword [ebp - 0x54]
add edx, 4
push edx
call fcn.00458ed8
mov eax, dword [ebp - 0x54]
mov ecx, edi
add cl, 0x49
add esp, 0xc
mov byte [eax], cl
add esi, 4
inc dword [ebp - 0x54]
mov edx, dword [ebp - 0x54]
mov byte [edx], 0x4c
inc dword [ebp - 0x54]
test ebx, ebx
jne 0x45aec5
xor ecx, ecx
jmp 0x45aeca
mov ecx, dword [ebp - 0x54]
sub ecx, ebx
mov dword [ebp - 0xb4], ecx
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x54]
sar eax, 8
mov ebx, dword [ebp - 0x54]
mov byte [edx], al
mov eax, dword [ebp - 0x54]
mov cl, byte [ebp - 0xb4]
and cl, 0xff
mov byte [eax + 1], cl
add dword [ebp - 0x54], 2
dec dword [ebp - 0xc]
jmp 0x45af5d
cmp dword [ebp - 8], 1
jle 0x45af51
cmp dword [ebp - 0x48], 0
je 0x45af11
cmp dword [ebp - 0x20], 0
jge 0x45af11
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0xa4], 1
mov ecx, dword [ebp - 0xa4]
cmp ecx, dword [ebp - 8]
jge 0x45af51
mov eax, dword [ebp - 0xac]
push eax
mov edx, dword [ebp - 0x54]
push edx
push esi
call fcn.00458ebc
add esi, dword [ebp - 0xac]
inc dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xa4]
add esp, 0xc
cmp ecx, dword [ebp - 8]
jl 0x45af26
cmp dword [ebp - 0xc], 0
jle 0x45af5d
mov eax, dword [ebp - 8]
sub dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jl 0x45b047
mov edx, dword [ebp - 0xc]
dec edx
mov dword [ebp - 0xa4], edx
cmp dword [ebp - 0xa4], 0
jl 0x45afe6
mov ecx, edi
add cl, 0x49
mov byte [esi], cl
inc esi
cmp dword [ebp - 0xa4], 0
je 0x45afbd
mov byte [esi], 0x4c
inc esi
test ebx, ebx
jne 0x45af97
xor eax, eax
jmp 0x45af9b
mov eax, esi
sub eax, ebx
mov dword [ebp - 0xb8], eax
mov ebx, esi
mov eax, dword [ebp - 0xb8]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0xb8]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
mov ecx, dword [ebp - 0xac]
push ecx
mov eax, dword [ebp - 0x54]
push eax
push esi
call fcn.00458ebc
add esi, dword [ebp - 0xac]
dec dword [ebp - 0xa4]
add esp, 0xc
cmp dword [ebp - 0xa4], 0
jge 0x45af7a
test ebx, ebx
je 0x45b066
mov eax, esi
sub eax, ebx
inc eax
mov edx, esi
sub edx, eax
xor ecx, ecx
mov cl, byte [edx + 1]
shl ecx, 8
movzx edi, byte [edx + 2]
or ecx, edi
mov dword [ebp - 0xbc], ecx
cmp dword [ebp - 0xbc], 0
jne 0x45b014
xor ecx, ecx
jmp 0x45b01c
mov ecx, ebx
sub ecx, dword [ebp - 0xbc]
mov ebx, ecx
mov byte [esi], 0x3e
inc esi
mov ecx, eax
sar ecx, 8
mov byte [esi], cl
mov ecx, eax
and cl, 0xff
mov byte [esi + 1], cl
mov ecx, eax
sar ecx, 8
add esi, 2
and al, 0xff
mov byte [edx + 1], cl
mov byte [edx + 2], al
test ebx, ebx
jne 0x45afea
jmp 0x45b066
mov eax, edi
add al, 0x3f
mov edx, dword [ebp - 0xa8]
neg edx
mov byte [esi + edx], al
jmp 0x45b066
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x47060c
jmp 0x45bc49
cmp dword [ebp - 0x60], 0
je 0x45b0dd
mov edx, esi
sub edx, dword [ebp - 0x40]
mov dword [ebp - 0xc0], edx
mov ecx, dword [ebp - 0xc0]
push ecx
mov eax, dword [ebp - 0x40]
push eax
mov edx, dword [ebp - 0x40]
add edx, 3
push edx
call fcn.00458ed8
add dword [ebp - 0xc0], 3
mov ecx, dword [ebp - 0x40]
add esi, 3
add esp, 0xc
mov byte [ecx], 0x46
mov byte [esi], 0x3e
inc esi
mov eax, dword [ebp - 0xc0]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0xc0]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
mov ecx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x40]
sar ecx, 8
mov byte [eax + 1], cl
mov ecx, dword [ebp - 0x40]
mov dl, byte [ebp - 0xc0]
and dl, 0xff
mov byte [ecx + 2], dl
xor eax, eax
mov dword [ebp - 0x54], eax
mov edx, dword [ebp + 0x28]
mov ecx, dword [ebp - 0x30]
or dword [edx + 0x28], ecx
jmp 0x45bc41
mov eax, dword [ebp - 0x3c]
xor edx, edx
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x74], edx
inc dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x4c]
cmp byte [ecx], 0x3f
jne 0x45b821
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
xor edx, edx
mov dl, byte [eax]
add edx, 0xffffffdf
cmp edx, 0x31
ja case.0x45b126.33
mov dl, byte [edx + 0x45b12d]
jmp dword [edx*4 + 0x45b15f]
inc dword [ebp - 0x4c]
jmp 0x45b197
inc dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x4c]
cmp byte [ecx], 0x29
jne 0x45b194
jmp 0x45bc41
mov dword [ebp - 0x10], 0x4c
inc dword [ebp - 0x4c]
jmp 0x45b873
mov dword [ebp - 0x10], 0x47
mov eax, dword [ebp - 0x4c]
cmp byte [eax + 1], 0x52
jne 0x45b1df
mov byte [esi + 3], 0x48
mov byte [esi + 4], 0xff
mov byte [esi + 5], 0xff
mov dword [ebp - 0x74], 3
add dword [ebp - 0x4c], 3
jmp 0x45b873
mov edx, dword [ebp - 0x4c]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp byte [ecx + 0x46fe68], 0
jne 0x45b1f4
xor eax, eax
jmp 0x45b1f9
mov eax, 1
test eax, eax
je 0x45b873
inc dword [ebp - 0x4c]
mov edx, dword [ebp - 0x4c]
xor ecx, ecx
mov cl, byte [edx]
sub ecx, 0x30
mov dword [ebp - 0xd0], ecx
jmp 0x45b233
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x4c]
add eax, eax
xor ecx, ecx
mov cl, byte [edx]
lea eax, [eax + eax*4]
add eax, ecx
sub eax, 0x30
mov dword [ebp - 0xd0], eax
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
cmp byte [eax], 0x29
jne 0x45b216
cmp dword [ebp - 0xd0], 0
jne 0x45b255
mov edx, dword [ebp + 0x18]
mov dword [edx], 0x47062e
jmp 0x45bc49
inc dword [ebp - 0x4c]
mov byte [esi + 3], 0x48
mov ecx, dword [ebp - 0xd0]
sar ecx, 8
mov byte [esi + 4], cl
mov al, byte [ebp - 0xd0]
and al, 0xff
mov byte [esi + 5], al
mov dword [ebp - 0x74], 3
jmp 0x45b873
mov dword [ebp - 0x10], 0x41
inc dword [ebp - 0x4c]
jmp 0x45b873
mov dword [ebp - 0x10], 0x42
inc dword [ebp - 0x4c]
jmp 0x45b873
inc dword [ebp - 0x4c]
mov edx, dword [ebp - 0x4c]
mov cl, byte [edx]
sub cl, 0x21
je 0x45b2c2
sub cl, 0x1c
jne 0x45b873
mov dword [ebp - 0x10], 0x43
inc dword [ebp - 0x4c]
jmp 0x45b873
mov dword [ebp - 0x10], 0x44
inc dword [ebp - 0x4c]
jmp 0x45b873
mov dword [ebp - 0x10], 0x46
inc dword [ebp - 0x4c]
jmp 0x45b873
mov byte [esi], 0x3c
inc esi
xor eax, eax
mov dword [ebp - 0xd4], eax
jmp 0x45b30b
mov edx, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0x4c]
add edx, edx
xor eax, eax
mov al, byte [ecx]
lea edx, [edx + edx*4]
add edx, eax
sub edx, 0x30
mov dword [ebp - 0xd4], edx
inc dword [ebp - 0x4c]
mov edx, dword [ebp - 0x4c]
xor ecx, ecx
mov cl, byte [edx]
test byte [ecx + 0x46fe68], 4
jne 0x45b2ee
cmp dword [ebp - 0xd4], 0xff
jle 0x45b338
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x470646
jmp 0x45bc49
mov dl, byte [ebp - 0xd4]
mov byte [esi], dl
inc esi
xor ecx, ecx
mov dword [ebp - 0x54], ecx
jmp 0x45bc41
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
cmp byte [eax], 0x3c
jne 0x45b4b1
mov edx, dword [ebp + 0x28]
mov ecx, dword [edx + 0x14]
mov dword [ebp - 0xe0], ecx
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0xe4], eax
mov edx, dword [ebp - 0x4c]
inc dword [ebp - 0x4c]
cmp byte [edx], 0x3e
jne 0x45b372
mov ecx, dword [ebp - 0x4c]
sub ecx, dword [ebp - 0xe4]
dec ecx
mov dword [ebp - 0xdc], ecx
xor eax, eax
mov dword [ebp - 0xd8], eax
jmp 0x45b441
mov edx, dword [ebp - 0xdc]
push edx
mov ecx, dword [ebp - 0xe0]
add ecx, 2
push ecx
mov eax, dword [ebp - 0xe4]
push eax
call fcn.00458ef4
add esp, 0xc
mov dword [ebp - 0xe8], eax
cmp dword [ebp - 0xe8], 0
jne 0x45b3f4
mov edx, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xdc]
cmp byte [edx + ecx + 2], 0
jne 0x45b3ea
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x470660
jmp 0x45bc49
mov dword [ebp - 0xe8], 0xffffffff
cmp dword [ebp - 0xe8], 0
jge 0x45b42f
mov edx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
mov ecx, dword [edx + 0x18]
sub ecx, dword [ebp - 0xd8]
imul ecx, dword [eax + 0x1c]
push ecx
mov edx, dword [ebp - 0xe0]
push edx
mov ecx, dword [ebp + 0x28]
mov eax, dword [ecx + 0x1c]
add eax, dword [ebp - 0xe0]
push eax
call fcn.00458ed8
add esp, 0xc
jmp 0x45b453
mov edx, dword [ebp + 0x28]
mov ecx, dword [edx + 0x1c]
add dword [ebp - 0xe0], ecx
inc dword [ebp - 0xd8]
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + 0x18]
cmp edx, dword [ebp - 0xd8]
jg 0x45b39a
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0xe0]
mov eax, dword [ecx]
inc eax
sar eax, 8
mov byte [edx], al
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0xe0]
mov al, byte [ecx]
inc eax
and al, 0xff
mov byte [edx + 1], al
mov ecx, dword [ebp - 0xdc]
push ecx
mov eax, dword [ebp - 0xe4]
push eax
mov edx, dword [ebp - 0xe0]
add edx, 2
push edx
call fcn.00458ebc
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xdc]
add esp, 0xc
mov byte [ecx + eax + 2], 0
mov edx, dword [ebp + 0x28]
inc dword [edx + 0x18]
jmp 0x45b830
mov ecx, dword [ebp - 0x4c]
cmp byte [ecx], 0x3d
je 0x45b4c5
mov eax, dword [ebp - 0x4c]
cmp byte [eax], 0x3e
jne 0x45b873
mov edx, dword [ebp - 0x4c]
xor ecx, ecx
mov cl, byte [edx]
mov dword [ebp - 0xf4], ecx
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0xf8], eax
mov edx, dword [ebp + 0x28]
mov ecx, dword [edx + 0x14]
mov dword [ebp - 0xfc], ecx
jmp 0x45b4ef
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
cmp byte [eax], 0x29
jne 0x45b4ec
mov edx, dword [ebp - 0x4c]
sub edx, dword [ebp - 0xf8]
mov dword [ebp - 0xf0], edx
xor ecx, ecx
mov dword [ebp - 0xec], ecx
jmp 0x45b546
mov eax, dword [ebp - 0xf0]
push eax
mov edx, dword [ebp - 0xfc]
add edx, 2
push edx
mov ecx, dword [ebp - 0xf8]
push ecx
call fcn.004590ac
add esp, 0xc
test eax, eax
je 0x45b554
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + 0x1c]
add dword [ebp - 0xfc], edx
inc dword [ebp - 0xec]
mov ecx, dword [ebp + 0x28]
mov eax, dword [ecx + 0x18]
cmp eax, dword [ebp - 0xec]
jg fcn.0045b510
mov edx, dword [ebp + 0x28]
mov ecx, dword [edx + 0x18]
cmp ecx, dword [ebp - 0xec]
jg 0x45b570
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x470684
jmp 0x45bc49
mov edx, dword [ebp - 0xfc]
mov eax, dword [ebp - 0xfc]
xor ecx, ecx
mov cl, byte [edx]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + 1]
or ecx, edx
mov dword [ebp - 0x70], ecx
cmp dword [ebp - 0xf4], 0x3e
je 0x45b627
mov dword [ebp - 0x54], esi
mov byte [esi], 0x3a
inc esi
mov ecx, dword [ebp - 0x70]
sar ecx, 8
mov byte [esi], cl
mov al, byte [ebp - 0x70]
and al, 0xff
mov byte [esi + 1], al
add esi, 2
cmp dword [ebp - 0x70], 0x20
jge 0x45b5c6
mov ecx, dword [ebp - 0x70]
mov edx, 1
shl edx, cl
jmp 0x45b5cb
mov edx, 1
mov eax, dword [ebp + 0x28]
or dword [eax + 0x24], edx
mov ecx, dword [ebp + 0x28]
mov eax, dword [ecx + 0x20]
cmp eax, dword [ebp - 0x70]
jge 0x45bc41
mov edx, dword [ebp + 0x28]
mov ecx, dword [ebp - 0x70]
mov dword [edx + 0x20], ecx
jmp 0x45bc41
inc dword [ebp - 0x4c]
xor eax, eax
mov dword [ebp - 0x70], eax
jmp 0x45b617
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x4c]
add edx, edx
xor eax, eax
mov al, byte [ecx]
lea edx, [edx + edx*4]
add edx, eax
sub edx, 0x30
mov dword [ebp - 0x70], edx
inc dword [ebp - 0x4c]
mov edx, dword [ebp - 0x4c]
xor ecx, ecx
mov cl, byte [edx]
test byte [ecx + 0x46fe68], 4
jne 0x45b5fd
mov dword [ebp - 0x54], esi
mov byte [esi], 0
cmp dword [ebp - 0x70], 0
jne 0x45b63b
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + 0x10]
jmp 0x45b654
mov ecx, dword [ebp - 0x70]
push ecx
mov eax, dword [ebp - 0x58]
push eax
mov edx, dword [ebp + 0x28]
mov ecx, dword [edx + 0x10]
push ecx
call fcn.00459ee4
add esp, 0xc
mov edx, eax
mov dword [ebp - 0x100], edx
cmp dword [ebp - 0x100], 0
jne 0x45b671
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4706a9
jmp 0x45bc49
mov ecx, dword [ebp - 0x100]
xor eax, eax
mov edx, dword [ebp - 0x100]
mov al, byte [ecx + 1]
xor ecx, ecx
shl eax, 8
mov cl, byte [edx + 2]
or eax, ecx
jne 0x45b6b8
mov eax, dword [ebp - 0x58]
push eax
mov edx, dword [ebp + 0x24]
push edx
push esi
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.0045a0fc
add esp, 0x10
test eax, eax
je 0x45b6b8
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4706ce
jmp 0x45bc49
mov byte [esi], 0x3b
mov edx, dword [ebp + 0x28]
mov ecx, dword [ebp - 0x100]
sub ecx, dword [edx + 0x10]
sar ecx, 8
mov byte [esi + 1], cl
mov eax, dword [ebp + 0x28]
mov edx, dword [ebp - 0x100]
sub edx, dword [eax + 0x10]
and dl, 0xff
mov byte [esi + 2], dl
add esi, 3
jmp 0x45bc41
xor ecx, ecx
lea eax, [ebp - 0xc4]
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xcc], eax
jmp 0x45b78a
mov edx, dword [ebp - 0x4c]
inc dword [ebp - 0x4c]
xor eax, eax
mov al, byte [edx]
cmp eax, 0x69
jg 0x45b728
je 0x45b747
sub eax, 0x2d
je 0x45b739
sub eax, 0x28
je 0x45b773
sub eax, 3
je 0x45b781
jmp 0x45b78a
sub eax, 0x6d
je 0x45b752
sub eax, 6
je 0x45b75d
sub eax, 5
je 0x45b768
jmp 0x45b78a
lea edx, [ebp - 0xc8]
mov dword [ebp - 0xcc], edx
jmp 0x45b78a
mov ecx, dword [ebp - 0xcc]
or dword [ecx], 1
jmp 0x45b78a
mov eax, dword [ebp - 0xcc]
or dword [eax], 2
jmp 0x45b78a
mov edx, dword [ebp - 0xcc]
or dword [edx], 4
jmp 0x45b78a
mov ecx, dword [ebp - 0xcc]
or dword [ecx], 8
jmp 0x45b78a
mov eax, dword [ebp - 0xcc]
or dword [eax], 0x200
jmp 0x45b78a
mov edx, dword [ebp - 0xcc]
or dword [edx], 0x40
mov ecx, dword [ebp - 0x4c]
cmp byte [ecx], 0x29
je 0x45b79e
mov eax, dword [ebp - 0x4c]
cmp byte [eax], 0x3a
jne 0x45b706
mov edx, dword [ebp - 0x3c]
or edx, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc8]
not ecx
and edx, ecx
mov dword [ebp - 0x6c], edx
mov eax, dword [ebp - 0x4c]
cmp byte [eax], 0x29
jne 0x45b815
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x6c]
and ecx, 7
and edx, 7
cmp edx, ecx
je 0x45b7d8
mov byte [esi], 0xf
inc esi
mov al, byte [ebp - 0x6c]
and al, 7
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp + 8]
mov dword [eax], edx
test byte [ebp - 0x6b], 2
setne cl
and ecx, 1
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
xor eax, 1
mov dword [ebp - 0x18], eax
test byte [ebp - 0x3c], 1
je 0x45b806
mov edx, pe_nt_image_headers32
jmp 0x45b808
xor edx, edx
mov dword [ebp - 0x2c], edx
xor eax, eax
mov dword [ebp - 0x54], eax
jmp 0x45bc41
mov dword [ebp - 0x10], 0x4c
inc dword [ebp - 0x4c]
jmp 0x45b873
test byte [ebp - 0x3b], 0x10
je 0x45b830
mov dword [ebp - 0x10], 0x4c
jmp 0x45b873
mov ecx, dword [ebp + 0xc]
inc dword [ecx]
mov eax, dword [ecx]
cmp eax, 0x96
jle 0x45b868
mov dword [ebp - 0x10], 0xe3
mov byte [esi + 3], 0x4b
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx]
sar ecx, 8
mov byte [esi + 4], cl
mov eax, dword [ebp + 0xc]
mov dl, byte [eax]
and dl, 0xff
mov byte [esi + 5], dl
mov dword [ebp - 0x74], 3
jmp 0x45b873
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
add eax, 0x4c
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0x46
jl 0x45b87d
mov edx, esi
jmp 0x45b87f
xor edx, edx
mov dword [ebp - 0x54], edx
mov al, byte [ebp - 0x10]
mov byte [esi], al
mov dword [ebp - 0x40], esi
mov ecx, dword [ebp + 0x28]
mov eax, dword [ecx + 0x28]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x78]
mov edx, dword [ebp + 0x28]
push edx
lea edx, [ebp - 0x7c]
mov ecx, dword [ebp + 0x24]
push ecx
push eax
push edx
mov ecx, dword [ebp - 0x74]
push ecx
cmp dword [ebp - 0x10], 0x43
je 0x45b8b7
cmp dword [ebp - 0x10], 0x44
je 0x45b8b7
xor eax, eax
jmp 0x45b8bc
mov eax, 1
push eax
lea ecx, [ebp - 0x4c]
mov edx, dword [ebp + 0x18]
lea eax, [ebp - 0x40]
push edx
push ecx
push eax
mov edx, dword [ebp + 0xc]
push edx
mov ecx, dword [ebp - 0x3c]
and ecx, 7
push ecx
mov eax, dword [ebp - 0x6c]
push eax
call fcn.0045bc5c
add esp, 0x30
test eax, eax
je 0x45bc49
cmp dword [ebp - 0x10], 0x47
jne 0x45b94b
mov dword [ebp - 0x104], esi
xor edx, edx
mov dword [ebp - 0x38], edx
inc dword [ebp - 0x38]
xor eax, eax
mov ecx, dword [ebp - 0x104]
mov edx, dword [ebp - 0x104]
mov al, byte [ecx + 1]
xor ecx, ecx
shl eax, 8
mov cl, byte [edx + 2]
or eax, ecx
add dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x104]
cmp byte [eax], 0x3e
jne 0x45b8f9
cmp dword [ebp - 0x38], 2
jle 0x45b93c
mov edx, dword [ebp + 0x18]
mov dword [edx], 0x4706f5
jmp 0x45bc49
cmp dword [ebp - 0x38], 1
jne 0x45b94b
or ecx, 0xffffffff
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x7c], ecx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
xor eax, eax
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x10], 0x4c
jge 0x45b96e
cmp dword [ebp - 0x10], 0x46
je 0x45b96e
cmp dword [ebp - 0x10], 0x47
jne 0x45b9bc
cmp dword [ebp - 0x1c], 0xfffffffe
jne 0x45b999
cmp dword [ebp - 0x7c], 0
jl 0x45b989
mov edx, dword [ebp - 0x7c]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x48], 1
jmp 0x45b990
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x28], 0xffffffff
jmp 0x45b9ae
cmp dword [ebp - 0x7c], 0
jl 0x45b9ae
cmp dword [ebp - 0x78], 0
jge 0x45b9ae
mov ecx, dword [ebp - 0x7c]
or ecx, dword [ebp - 0x34]
mov dword [ebp - 0x78], ecx
cmp dword [ebp - 0x78], 0
jl 0x45b9ce
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x20], eax
jmp 0x45b9ce
cmp dword [ebp - 0x10], 0x41
jne 0x45b9ce
cmp dword [ebp - 0x78], 0
jl 0x45b9ce
mov edx, dword [ebp - 0x78]
mov dword [ebp - 0x20], edx
mov esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x4c]
cmp byte [eax], 0x29
je 0x45bc41
mov edx, dword [ebp + 0x18]
mov dword [edx], 0x470727
jmp 0x45bc49
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x50], ecx
push 0
mov eax, dword [ebp - 0x3c]
push eax
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx]
push ecx
mov eax, dword [ebp + 0x18]
push eax
lea edx, [ebp - 0x4c]
push edx
call fcn.004599a8
add esp, 0x14
mov ebx, eax
test ebx, ebx
jge 0x45bad0
mov eax, ebx
neg eax
cmp eax, 0x10
jne 0x45ba47
mov edx, dword [ebp - 0x4c]
cmp byte [edx + 1], 0x5c
jne 0x45ba3b
mov ecx, dword [ebp - 0x4c]
cmp byte [ecx + 2], 0x45
jne 0x45ba3b
add dword [ebp - 0x4c], 2
jmp 0x45bc41
mov dword [ebp - 0x44], 1
jmp 0x45bc41
cmp dword [ebp - 0x1c], 0xfffffffe
jne 0x45ba66
mov eax, ebx
neg eax
cmp eax, 4
jle 0x45ba66
mov edx, ebx
neg edx
cmp edx, 0xd
jge 0x45ba66
mov dword [ebp - 0x1c], 0xffffffff
mov ecx, dword [ebp - 0x1c]
mov edx, ebx
neg edx
mov dword [ebp - 0x28], ecx
cmp edx, 0x11
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
jl 0x45baab
neg ebx
add ebx, 0xffffffef
mov dword [ebp - 0x108], ebx
mov dword [ebp - 0x54], esi
mov byte [esi], 0x3a
inc esi
mov ecx, dword [ebp - 0x108]
sar ecx, 8
mov byte [esi], cl
mov al, byte [ebp - 0x108]
and al, 0xff
mov byte [esi + 1], al
add esi, 2
jmp 0x45bc41
mov edx, ebx
neg edx
cmp edx, 4
jle 0x45bac1
mov ecx, ebx
neg ecx
cmp ecx, 0xd
jge 0x45bac1
mov eax, esi
jmp 0x45bac3
xor eax, eax
neg bl
mov dword [ebp - 0x54], eax
mov byte [esi], bl
inc esi
jmp 0x45bc41
mov edx, dword [ebp - 0x50]
mov ebx, 0x5c
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x54], esi
mov byte [esi], 0x12
add esi, 2
xor edi, edi
cmp dword [ebp - 0x44], 0
je 0x45bb0a
cmp ebx, 0x5c
jne 0x45bb04
mov eax, dword [ebp - 0x4c]
cmp byte [eax + 1], 0x45
jne 0x45bb04
xor edx, edx
mov dword [ebp - 0x44], edx
inc dword [ebp - 0x4c]
jmp 0x45bb73
mov byte [esi], bl
inc esi
inc edi
jmp 0x45bb73
test byte [ebp - 0x3c], 8
je 0x45bb3a
mov ecx, dword [ebp + 0x28]
mov eax, dword [ecx + 0xc]
test byte [eax + ebx], 1
jne 0x45bb73
cmp ebx, 0x23
jne 0x45bb3a
inc dword [ebp - 0x4c]
mov edx, dword [ebp - 0x4c]
xor ebx, ebx
mov bl, byte [edx]
test ebx, ebx
je 0x45bb34
cmp ebx, 0xa
jne 0x45bb21
test ebx, ebx
je 0x45bb95
jmp 0x45bb73
cmp ebx, 0x5c
jne 0x45bb6f
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x50], eax
push 0
mov edx, dword [ebp - 0x3c]
push edx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
push eax
mov edx, dword [ebp + 0x18]
push edx
lea ecx, [ebp - 0x4c]
push ecx
call fcn.004599a8
add esp, 0x14
mov ebx, eax
test ebx, ebx
jge 0x45bb6f
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x4c], eax
jmp 0x45bb95
mov byte [esi], bl
inc esi
inc edi
cmp edi, 0xfa
jge 0x45bb95
inc dword [ebp - 0x4c]
xor ebx, ebx
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp + 0x28]
mov bl, byte [edx]
mov edx, dword [eax + 0xc]
test byte [edx + ebx], 0x80
je 0x45bae6
cmp dword [ebp - 0x1c], 0xfffffffe
jne 0x45bbfc
cmp edi, 1
jne 0x45bbbd
mov dword [ebp - 0x28], 0xffffffff
mov ecx, dword [ebp - 0x54]
xor eax, eax
mov al, byte [ecx + 2]
or eax, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x24], edx
jmp 0x45bc2e
mov ecx, dword [ebp - 0x54]
xor eax, eax
mov al, byte [ecx + 2]
or eax, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x28], eax
cmp edi, 2
jle 0x45bbe3
xor edx, edx
mov ecx, dword [ebp + 0x28]
mov dl, byte [esi - 2]
or edx, dword [ebp - 0x2c]
or edx, dword [ecx + 0x28]
jmp 0x45bbe6
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x24], edx
xor eax, eax
mov al, byte [esi - 1]
mov ecx, dword [ebp + 0x28]
or eax, dword [ebp - 0x2c]
or eax, dword [ecx + 0x28]
mov dword [ebp - 0x20], eax
jmp 0x45bc2e
mov eax, dword [ebp - 0x1c]
cmp edi, 1
mov dword [ebp - 0x28], eax
jne 0x45bc0c
mov edx, dword [ebp - 0x20]
jmp 0x45bc1a
xor edx, edx
mov eax, dword [ebp + 0x28]
mov dl, byte [esi - 2]
or edx, dword [ebp - 0x2c]
or edx, dword [eax + 0x28]
mov dword [ebp - 0x24], edx
xor ecx, ecx
mov cl, byte [esi - 1]
mov eax, dword [ebp + 0x28]
or ecx, dword [ebp - 0x2c]
or ecx, dword [eax + 0x28]
mov dword [ebp - 0x20], ecx
mov edx, edi
mov ecx, dword [ebp - 0x54]
mov byte [ecx + 1], dl
cmp edi, 0xfa
jge 0x45bc41
dec dword [ebp - 0x4c]
inc dword [ebp - 0x4c]
jmp 0x45a2b2
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp - 0x4c]
mov dword [eax], edx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret