Function at 0x453859
Capabilities:
Parse credit card information
Set environment variable

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x248
or dword [ebp - 0x6c], 0xffffffff
or dword [ebp - 0x44], 0xffffffff
push ebx
push esi
mov esi, dword [ebp + 0x78]
xor eax, eax
push edi
xor edi, edi
inc eax
cmp esi, edi
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x80], edi
mov byte [ebp + 0x67], 0
mov byte [ebp + 0x4f], 0
mov byte [ebp + 0xa], 0
mov dword [ebp + 0x30], edi
mov dword [ebp - 0x20], edi
mov dword [ebp + 0x48], edi
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x84], edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x10], edi
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x70], eax
mov dword [ebp + 0x2c], str._I64d
je 0x45414e
cmp word [esi], di
je 0x45414e
xor ebx, ebx
mov bx, word [esi]
mov eax, ebx
call fcn.0040ea2b
test al, al
jne 0x454139
cmp bx, 0x2e
je 0x45412e
cmp bx, 0x24
je 0x45412e
cmp bx, 0x25
je 0x45412e
cmp bx, 0x2a
jne 0x45391b
or byte [ebp + 0x67], 4
jmp 0x45412e
push 0x7e
pop ecx
cmp bx, cx
jne 0x45396c
lea eax, [esi + 2]
cmp word [eax], cx
jne 0x453936
or byte [ebp + 0x67], 2
mov esi, eax
jmp 0x45412e
cmp bx, cx
jne 0x45396c
lea eax, [esi + 2]
cmp word [eax], 0x2e
jne 0x45394a
or byte [ebp + 0x67], 8
jmp 0x45392f
cmp bx, cx
jne 0x45396c
lea eax, [esi + 2]
cmp word [eax], 0x2a
jne 0x45395e
or byte [ebp + 0x67], 0xa
jmp 0x45392f
cmp bx, cx
jne 0x45396c
or byte [ebp + 0x67], 1
jmp 0x45412e
push 4
push esi
push str._std
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453992
add esi, 6
mov dword [ebp - 0x8c], 0x80
jmp 0x45412e
push 4
push esi
push str._env
call fcn.0043af58
add esp, 0xc
test al, al
je 0x4539b8
add esi, 6
mov dword [ebp - 0x8c], 0x40
jmp 0x45412e
push 4
push esi
push str._raw
call fcn.0043af58
add esp, 0xc
test al, al
je 0x4539db
add esi, 6
mov dword [ebp - 0x14], 0x40
jmp 0x45412e
cmp bx, 0x3c
jne 0x4539ea
mov byte [ebp + 0x4f], 1
jmp 0x45412e
cmp bx, 0x3e
jne 0x4539f9
mov byte [ebp + 0x4f], 2
jmp 0x45412e
push 4
pop ebx
push ebx
push esi
push str._def
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453a1b
add esi, 6
add byte [ebp + 0x7c], 2
jmp 0x45412e
push ebx
push esi
push str._tom
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453a3d
add esi, 6
mov dword [ebp + 0x30], 1
jmp 0x45412e
push ebx
push esi
push str._tow
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453a5f
add esi, 6
mov dword [ebp + 0x30], 2
jmp 0x45412e
push 5
push esi
push str._copy
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453a7e
add esi, 8
mov dword [ebp + 0x30], ebx
jmp 0x45412e
push ebx
push esi
push str._cmp
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453aa0
add esi, 8
mov dword [ebp + 0x30], 0x100
jmp 0x45412e
push 5
push esi
push str._addr
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453ac1
push 8
pop eax
add esi, eax
mov dword [ebp + 0x30], eax
jmp 0x45412e
push 0xb
push esi
push str._mkfixdummy
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453ae4
add esi, 0x14
mov dword [ebp + 0x30], 0x83
jmp 0x45412e
push 8
pop ebx
push ebx
push esi
push str._mkdummy
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453b09
add esi, 0xe
mov dword [ebp + 0x30], 0x81
jmp 0x45412e
push 5
push esi
push str._make
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453b2b
add esi, ebx
mov dword [ebp + 0x30], 0x80
jmp 0x45412e
push 5
push esi
push str._swap
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453b4d
add esi, ebx
mov dword [ebp + 0x30], 0x20
jmp 0x45412e
push 5
push esi
push str._char
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453b72
mov dword [ebp + 0x50], 1
mov dword [ebp + 0x54], edi
add esi, ebx
jmp 0x45412e
push 6
push esi
push str._wchar
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453b98
mov dword [ebp + 0x50], 2
mov dword [ebp + 0x54], edi
add esi, 0xa
jmp 0x45412e
push 6
push esi
push str._short
call fcn.0043af58
add esp, 0xc
test al, al
jne 0x453b86
push 4
push esi
push str._ptr
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453bd2
mov dword [ebp + 0x50], 4
mov dword [ebp + 0x54], edi
add esi, 6
jmp 0x45412e
push 6
push esi
push str._float
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453bf1
push 4
pop eax
mov dword [ebp - 0x7c], eax
mov dword [ebp + 0x50], eax
jmp 0x453b8d
push 7
push esi
push str._double
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453c16
mov dword [ebp - 0x74], ebx
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], edi
add esi, 0xc
jmp 0x45412e
push ebx
push esi
push str._ldouble
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453c3a
mov dword [ebp - 0x78], ebx
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], edi
add esi, 0xe
jmp 0x45412e
push 6
push esi
push str._int64
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453c5c
add esi, 0xa
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], edi
jmp 0x45412e
push 9
push esi
push str._longlong
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453c75
add esi, 0x10
jmp 0x453c51
push 5
push esi
push str._long
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453c95
mov dword [ebp + 0x50], 4
jmp 0x453b68
push 5
push esi
push str._zero
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453cb3
add esi, ebx
mov dword [ebp - 0x44], edi
jmp 0x45412e
push 7
push esi
push str._intsys
call fcn.0043af58
add esp, 0xc
test al, al
jne 0x453f2b
push 4
push esi
push str._int
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453d02
mov ax, word [esi + 8]
and ax, 0xffdf
cmp ax, 0x41
jb 0x453cf3
cmp ax, 0x5a
jbe 0x453d02
add esi, 6
mov dword [ebp + 0x50], 4
jmp 0x453c54
push 5
push esi
push 0x4b72e8
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453d50
add esi, ebx
xor edx, edx
lea eax, [esi + 2]
mov cx, word [eax]
inc edx
cmp cx, 0x73
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x10], edx
mov dword [ebp + 0x2c], str.0x_I64X
jne 0x453d3a
mov dword [ebp - 0x40], edx
cmp cx, 0x30
jne 0x453fb9
mov dword [ebp + 0x2c], str.0x_02I64X
jmp 0x453fb7
push 6
push esi
push 0x4b72cc
call fcn.0043af58
add esp, 0xc
test al, al
jne 0x453d78
push 6
push esi
push 0x4b72c4
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453db3
add esi, 0xa
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
push 2
pop edx
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x10], edx
mov dword [ebp + 0x2c], str.0x_I64X
jne 0x453d9d
mov dword [ebp - 0x40], edx
cmp cx, 0x30
jne 0x453fb9
mov dword [ebp + 0x2c], str.0x_04I64X
jmp 0x453fb7
push 4
push esi
push 0x4b72a8
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453df4
add esi, 6
lea eax, [esi + 2]
cmp word [eax], 0x30
mov dword [ebp + 0x10], 0x64
mov dword [ebp + 0x50], 4
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x2c], str.0x_I64X
jne 0x453fb9
jmp 0x453fb7
push 6
push esi
push 0x4b72a0
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453e1f
push 4
pop eax
add esi, 0xa
mov dword [ebp - 0x7c], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x10], eax
jmp 0x45412e
push 7
push esi
push 0x4b7298
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453e47
add esi, 0xc
mov dword [ebp - 0x74], ebx
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x10], ebx
jmp 0x45412e
push ebx
push esi
push 0x4b728c
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453e62
add esi, 0xe
mov dword [ebp - 0x78], ebx
jmp 0x453e39
push 6
push esi
push 0x4b7284
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453e7b
add esi, 0xa
jmp 0x453e92
push 9
push esi
push 0x4b7278
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453ec0
add esi, 0x10
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x10], ebx
jne 0x453eaa
mov dword [ebp - 0x40], ebx
cmp cx, 0x30
jne 0x453fb9
mov dword [ebp + 0x2c], str.0x_016I64X
jmp 0x453fb7
push 5
push esi
push 0x4b7258
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453eeb
push 4
pop edx
add esi, ebx
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x10], edx
mov dword [ebp + 0x2c], str.0x_I64X
jmp 0x453f98
push 6
push esi
push str._intpe
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453f10
push 4
pop edx
add esi, 0xa
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x10], edx
jmp 0x453f98
push 7
push esi
push 0x4b7248
call fcn.0043af58
add esp, 0xc
test al, al
je 0x453f75
mov dword [ebp + 0x10], 4
mov cl, byte [0x4c8be9]
add esi, 0xc
cmp cl, 3
mov dword [ebp + 0x50], 4
mov dword [ebp + 0x54], edi
jne 0x453f49
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], edi
lea eax, [esi + 2]
cmp word [eax], 0x30
jne 0x45412e
cmp cl, 3
mov esi, eax
je 0x453f69
mov dword [ebp + 0x2c], str.0x_08I64X
jmp 0x45412e
mov dword [ebp + 0x2c], str.0x_016I64X
jmp 0x45412e
push 4
push esi
push 0x4b722c
call fcn.0043af58
add esp, 0xc
test al, al
push 4
je 0x453fd1
pop eax
push 4
add esi, 6
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x10], eax
pop edx
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
mov dword [ebp + 0x54], edi
jne 0x453faa
mov dword [ebp - 0x40], edx
cmp cx, 0x30
jne 0x453fb9
mov dword [ebp + 0x2c], str.0x_08I64X
mov esi, eax
lea eax, [esi + 2]
cmp word [eax], 0x40
jne 0x45412e
add dword [ebp + 0x2c], 4
mov esi, eax
jmp 0x45412e
push esi
push str._ret
call fcn.0043af58
add esp, 0xc
test al, al
je 0x45401f
add esi, ebx
cmp word [esi], 0x3a
mov dword [ebp - 0x20], 1
mov dword [ebp + 0x5c], esi
jne 0x453ffa
inc esi
inc esi
mov dword [ebp + 0x5c], esi
mov ax, word [esi]
call fcn.0043f9a3
test al, al
je 0x454018
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp + 0x5c]
push eax
call fcn.0044b46e
mov esi, dword [ebp + 0x5c]
pop ecx
pop ecx
dec esi
dec esi
jmp 0x45412e
push 4
push esi
push str._get
call fcn.0043af58
add esp, 0xc
test al, al
je 0x45405b
add esi, ebx
cmp word [esi], 0x3a
mov dword [ebp + 0x48], 1
mov dword [ebp + 0x5c], esi
jne 0x45404a
inc esi
inc esi
mov dword [ebp + 0x5c], esi
mov ax, word [esi]
call fcn.0043f9a3
test al, al
je 0x454018
lea eax, [ebp + 0x48]
jmp 0x454009
push 3
push esi
push 0x4b7218
call fcn.0043af58
add esp, 0xc
test al, al
je 0x45407b
add esi, 4
mov byte [ebp + 0xa], 1
jmp 0x45412e
push 2
pop ebx
push ebx
push esi
push 0x4b7214
call fcn.0043af58
add esp, 0xc
test al, al
je 0x4540b8
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp + 0x5c]
add esi, 4
push eax
mov dword [ebp + 0x5c], esi
mov dword [ebp - 0x84], 1
call fcn.0044b46e
mov esi, dword [ebp + 0x5c]
pop ecx
pop ecx
jmp 0x45412c
push ebx
push esi
push 0x4b7210
call fcn.0043af58
add esp, 0xc
test al, al
je 0x45412e
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp + 0x5c]
add esi, 4
push eax
mov dword [ebp + 0x5c], esi
call fcn.0040545b
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp + 0x5c]
push eax
call fcn.0040545b
mov esi, dword [ebp - 0x58]
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp + 0x5c]
push eax
mov dword [ebp - 0x60], esi
call fcn.0044b46e
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp + 0x5c]
push eax
call fcn.0044b46e
add esp, 0x20
cmp dword [ebp - 0x70], edi
jg 0x45411a
mov dword [ebp - 0x70], 1
mov eax, dword [ebp - 0x48]
sub eax, esi
mov esi, dword [ebp + 0x5c]
inc eax
cmp word [esi], 0x5d
mov dword [ebp - 0x6c], eax
je 0x45412e
sub esi, ebx
inc esi
inc esi
cmp word [esi], di
jne 0x4538da
cmp dword [ebp - 0x14], edi
je 0x45414e
mov eax, dword [ebp + 0x78]
mov dword [ebp + 0x70], eax
lea eax, [ebp + 0x70]
push eax
call fcn.0040549b
pop ecx
mov eax, dword [ebp + 0x70]
mov dword [ebp + 0xc], eax
lea eax, [ebp + 0xc]
push eax
call fcn.00439c95
mov eax, dword [ebp + 0xc]
pop ecx
jmp 0x45416b
inc byte [ebp + 0x7c]
inc eax
inc eax
mov dword [ebp + 0xc], eax
cmp word [eax], 0x26
je 0x454163
lea ecx, [ebp - 0x88]
call fcn.0043fd9a
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x44], eax
jmp 0x45418f
cmp cx, 0x3d
je 0x454197
inc eax
inc eax
mov dword [ebp + 0xc], eax
mov cx, word [eax]
cmp cx, di
jne 0x454184
mov dword [ebp + 0x60], 0x4ae9fc
cmp word [eax], 0x3d
mov ecx, eax
mov byte [ebp + 0x3b], 0
je 0x4541b0
mov byte [ebp + 0x3b], 1
jmp 0x4541b8
inc eax
inc eax
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x60], eax
mov word [ecx], di
push dword [ebp + 0x44]
call fcn.0040fed5
mov eax, dword [ebp + 0x44]
cmp word [eax], 0x7e
pop ecx
jne 0x454208
inc eax
inc eax
mov edx, eax
mov dword [ebp - 0x80], edx
jmp 0x4541de
cmp cx, 0x7e
je 0x4541e9
inc eax
inc eax
mov dword [ebp + 0x44], eax
mov cx, word [eax]
cmp cx, di
jne 0x4541d6
cmp word [eax], 0x7e
je 0x4541f9
mov edi, 0x80070057
jmp 0x45584f
mov word [eax], di
add dword [ebp + 0x44], 2
cmp word [edx], di
jne 0x454208
mov dword [ebp - 0x80], edi
lea ecx, [ebp - 0x5c]
call fcn.0043fd9a
mov esi, dword [ebp - 0x54]
push 0x3b
push 0x2c
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp + 0x44]
push eax
mov ecx, esi
call fcn.0043525c
push 0x3b
push 0x2c
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp + 0x44]
push eax
mov ecx, esi
call fcn.0043525c
cmp dword [ebp + 0x30], 8
mov eax, dword [ebp - 0x88]
mov dword [ebp + 0x44], eax
je 0x45425c
cmp word [eax], di
jne 0x45425c
mov eax, dword [ebp - 0x5c]
cmp word [eax], di
je 0x455847
cmp byte [ebp + 0x7c], 2
mov edx, esi
setge byte [ebp + 0x2b]
mov al, byte [ebp + 0x2b]
neg al
mov dword [ebp - 0x14], edx
sbb eax, eax
and eax, esi
cmp dword [ebp - 0x20], edi
mov dword [ebp - 0x38], eax
mov eax, esi
mov dword [ebp + 0x18], eax
jle 0x45429d
dec dword [ebp - 0x20]
js 0x454294
mov ecx, dword [ebp - 0x20]
inc ecx
sub dword [ebp - 0x20], ecx
dec ecx
mov eax, dword [eax + 0x24]
jne 0x45428b
mov dword [ebp + 0x18], eax
cmp byte [ebp + 0x2b], 0
je 0x45429d
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0x48]
cmp eax, edi
jle 0x4542b1
dec eax
js 0x4542b1
inc eax
dec eax
mov edx, dword [edx + 0x24]
jne 0x4542a8
mov dword [ebp - 0x14], edx
cmp byte [ebp + 0x3b], 0
je 0x4542be
mov byte [ebp + 0x4f], 0
mov dword [ebp + 0x30], edi
push 0x4c9c14
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [ebp - 0x6c], edi
mov dword [ebp + 0x5c], edi
mov dword [ebp - 0xb8], edi
mov dword [ebp - 0xb4], edi
mov dword [ebp - 0xac], edi
mov dword [ebp - 0xb0], edi
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
jle 0x454338
push dword [ebp + 0x44]
call edi
push dword [ebp + 0x60]
mov esi, eax
mov ebx, 0x641
add esi, ebx
call edi
add eax, ebx
add eax, esi
push eax
lea ecx, [ebp + 0x5c]
call fcn.0043fddf
mov eax, dword [ebp + 0x44]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp + 0x5c]
lea esi, [eax + esi*2]
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xb0], esi
jmp 0x4550b7
xor esi, esi
push 0xa
xor eax, eax
pop ecx
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0xf4], esi
lea edi, [ebp - 0xf0]
rep stosd dword es:[edi], eax
xor ebx, ebx
lea eax, [ebp - 0xf8]
lea ecx, [ebp + 0x3c]
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], ebx
mov byte [ebp + 0x73], bl
mov dword [ebp - 4], eax
mov dword [ebp + 0x34], esi
call fcn.0043fd9a
lea eax, [ebp + 0x58]
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x50]
xor ecx, ecx
cmp dword [ebp - 0x44], ecx
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0x44]
cdq
mov dword [ebp + 0x58], ecx
mov dword [ebp - 0xa4], ecx
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], edx
mov dword [ebp - 0x34], 0xff000000
jl 0x454461
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.00453803
movzx eax, byte [ebp - 0x34]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 0x60]
xor edi, edi
add esp, 0xc
cmp word [eax], di
mov dword [ebp + 0x48], edi
je 0x454e38
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.00453803
mov eax, dword [ebp + 0x60]
add esp, 0xc
cmp word [eax], di
je 0x454444
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp + 0x60]
push eax
mov dword [ebp + 0x48], edi
call fcn.00453803
add esp, 0xc
test eax, eax
jle 0x454444
cmp dword [ebp + 0x48], edi
jne 0x45444d
cmp dword [ebp - 0x34], edi
je 0x454e38
movzx ecx, byte [ebp - 0x34]
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
call fcn.0049d0b0
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
cmp dword [ebp + 0x48], edi
je 0x454e38
cmp dword [ebp - 0x34], edi
jne 0x454e38
mov eax, dword [ebp + 0x48]
mov dword [ebp - 0x34], eax
jmp 0x454e38
cmp byte [ebp + 0xa], 0
je 0x45447f
push dword [ebp + 0x60]
push dword [ebp - 0x14]
call fcn.004433cc
pop ecx
pop ecx
push 2
mov dword [ebp + 0x60], eax
pop esi
jmp 0x454d23
test byte [ebp + 0x30], 0x80
je 0x4547aa
mov esi, dword [ebp + 0x60]
xor ecx, ecx
push 0x26
or edi, 0xffffffff
pop eax
cmp word [esi], ax
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp + 0x40], esi
mov ebx, edi
mov byte [ebp + 0x2a], cl
mov dword [ebp + 0x24], ecx
mov dword [ebp + 0x48], ecx
jne 0x45455f
push 2
mov byte [ebp + 0x2a], 1
pop edx
cmp ax, 0x3b
je 0x4544e9
cmp ax, 0x2c
je 0x4544e9
cmp ax, 0x3a
je 0x4544e9
cmp ax, 0x40
je 0x4544e9
add esi, edx
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x40], esi
jne 0x4544c4
mov ax, word [esi]
cmp ax, cx
je 0x4544f9
mov word [esi], cx
add esi, edx
mov dword [ebp + 0x40], esi
cmp ax, 0x40
jne 0x454536
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x48], esi
je 0x454536
cmp ax, 0x3b
je 0x454529
cmp ax, 0x2c
je 0x454529
cmp ax, 0x3a
je 0x454529
add esi, edx
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x40], esi
jne 0x45450a
cmp word [esi], cx
je 0x454536
mov word [esi], cx
add esi, edx
mov dword [ebp + 0x40], esi
mov ecx, dword [ebp - 0x14]
push 0
push 0xffffffffffffffff
push 0
push dword [ebp + 0x60]
call fcn.0040fd4e
test eax, eax
je 0x4550f5
mov ecx, dword [eax + 4]
mov dword [ebp + 0x60], ecx
mov ebx, dword [eax + 0x10]
xor edi, edi
jmp 0x454641
push 5
push esi
push str._shm_
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x454690
add esi, 0xa
mov ecx, esi
xor edi, edi
jmp 0x454598
cmp ax, 0x3b
je 0x4545a3
cmp ax, 0x2c
je 0x4545a3
cmp ax, 0x3a
je 0x4545a3
cmp ax, 0x40
je 0x4545a3
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x40], esi
jne 0x45457e
mov ax, word [esi]
cmp ax, di
je 0x4545b3
mov word [esi], di
inc esi
inc esi
mov dword [ebp + 0x40], esi
cmp ax, 0x40
jne 0x4545f0
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x48], esi
je 0x4545f0
cmp ax, 0x3b
je 0x4545e3
cmp ax, 0x2c
je 0x4545e3
cmp ax, 0x3a
je 0x4545e3
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x40], esi
jne 0x4545c4
cmp word [esi], di
je 0x4545f0
mov word [esi], di
inc esi
inc esi
mov dword [ebp + 0x40], esi
cmp word [ecx], di
je 0x4551d3
mov eax, 0x4ae9fc
push eax
push eax
push eax
push 0xffffffffffffffff
push ecx
mov ecx, dword [ebp - 0x54]
call fcn.0043c8fe
cmp eax, edi
je 0x4551d3
cmp dword [eax + 4], 0x14
jne 0x4551d3
cmp dword [eax + 0x48], 0xfffffffe
jne 0x4551d3
cmp dword [eax + 0x50], edi
jle 0x4551d3
mov ecx, dword [eax + 0x44]
mov dword [ebp + 0x60], ecx
mov eax, dword [eax + 0x50]
dec eax
dec eax
cdq
mov ebx, eax
mov edi, edx
cmp dword [ebp + 0x48], 0
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], edi
je 0x4546b3
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp + 0x48]
push eax
call fcn.00453803
add esp, 0xc
test eax, eax
jle 0x4546b3
cmp dword [ebp - 0x98], 0
jl 0x4546b3
mov eax, dword [ebp - 0x9c]
jg 0x45467d
test eax, eax
jbe 0x4546b3
add dword [ebp + 0x60], eax
sub ebx, eax
sbb edi, dword [ebp - 0x98]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], edi
jmp 0x4546b3
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.00453803
mov eax, dword [ebp - 0x9c]
mov esi, dword [ebp + 0x40]
add esp, 0xc
mov dword [ebp + 0x60], eax
cmp word [esi], 0x7e
sete byte [ebp - 5]
cmp byte [ebp - 5], 0
je 0x4546c6
inc esi
inc esi
mov dword [ebp + 0x40], esi
cmp word [esi], 0x2a
sete byte [ebp + 0xb]
cmp byte [ebp + 0xb], 0
je 0x4546dd
inc esi
inc esi
and dword [ebp + 0x24], 0
mov dword [ebp + 0x40], esi
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.00453803
xor esi, esi
add esp, 0xc
cmp dword [ebp + 0x60], esi
jne 0x454704
mov dword [ebp + 0x60], 0x4af60a
jmp 0x454d23
cmp eax, 1
jge 0x45473a
cmp byte [ebp + 0x2a], 0
jne 0x454755
cmp byte [ebp + 0xb], 0
je 0x454724
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cdq
mov dword [ebp - 0xc], edx
jmp 0x454758
cmp byte [ebp - 5], 0
jg 0x454755
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
shl eax, 1
mov dword [ebp - 0xc], esi
jmp 0x454758
cmp byte [ebp + 0x2a], 0
je 0x454755
cmp dword [ebp - 0xc], edi
jl 0x454755
jg 0x45474e
mov eax, dword [ebp - 0x10]
cmp eax, ebx
jbe 0x454758
mov eax, ebx
mov dword [ebp - 0xc], edi
jmp 0x454758
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0xc], esi
jl 0x45512f
jg 0x45476b
cmp eax, esi
jb 0x45512f
mov esi, eax
mov eax, dword [ebp + 0x30]
and ax, 0x81
xor ebx, ebx
cmp al, 0x81
jne 0x454e38
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp + 0x60]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x44]
call fcn.0040fd4e
test eax, eax
je 0x455158
test byte [eax + 0x17], 0xc0
je 0x45516c
and dword [eax + 4], ebx
jmp 0x45516c
xor edi, edi
fldz
cmp dword [ebp + 0x30], edi
fstp qword [ebp - 0x50]
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x64], edi
je 0x454d2a
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x48], edi
xor ecx, ecx
jmp 0x4547e4
cmp cx, 0x2c
je 0x4547f1
cmp cx, 0x3b
je 0x4547f1
cmp cx, 0x3a
je 0x4547f1
cmp cx, 0x7c
je 0x4547f1
inc eax
inc eax
mov cx, word [eax]
cmp cx, di
mov dword [ebp + 0x24], eax
jne 0x4547ca
jmp 0x454800
mov cx, word [eax]
mov word [eax], di
inc eax
inc eax
mov word [ebp + 0x48], cx
mov dword [ebp + 0x24], eax
mov ecx, dword [ebp - 0x54]
push edi
push 0x2c
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0043525c
mov ecx, dword [ebp - 0x14]
push edi
push 0xffffffffffffffff
push edi
push dword [ebp + 0x3c]
call fcn.0040fd4e
cmp eax, edi
je 0x4551d3
lea edi, [eax + 4]
mov ecx, dword [edi]
mov dword [ebp + 0x60], ecx
mov ecx, dword [ebp + 0x30]
add eax, 0x10
mov esi, dword [eax]
xor ebx, ebx
cmp ecx, 8
jne 0x45488f
push dword [ebp - 0x5c]
mov dword [ebp - 0xc], ebx
push esi
push dword [ebp - 0x54]
call fcn.00442235
mov eax, dword [ebp + 0x44]
add esp, 0xc
cmp word [eax], bx
je 0x4551ff
push dword [edi]
push str.0x_p
lea eax, [ebp - 0x140]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0x140]
add esp, 0xc
push eax
mov dword [ebp + 0x60], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
shl esi, 1
jmp 0x454d23
cmp ecx, 4
jne 0x4549a8
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x38]
push dword [ebp + 0x44]
call fcn.0040fd4e
cmp word [ebp + 0x48], 0
mov edi, eax
jne 0x45524d
test edi, edi
je 0x454e38
test byte [edi + 0x17], 0xc0
je 0x454e38
mov eax, dword [ebp + 0x60]
mov dword [ebp - 4], eax
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x54], ebx
mov esi, dword [ebp - 0x68]
add esi, dword [ebp + 0x50]
mov eax, dword [ebp - 0x64]
adc eax, dword [ebp + 0x54]
mov ecx, dword [edi + 0x10]
xor edx, edx
test byte [edi + 0x17], 0xc0
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x40], ecx
je 0x454904
cmp eax, edx
jl 0x454904
jg 0x4550f5
cmp esi, ecx
ja 0x4550f5
mov ebx, dword [ebp - 0x18]
mov eax, esi
sub eax, ecx
sbb ebx, edx
mov dword [ebp - 0xc4], ebx
js 0x454967
jg 0x45491b
test eax, eax
jbe 0x454967
mov ecx, dword [ebp - 0x18]
push 0
mov eax, esi
add eax, 1
push 2
adc ecx, 0
push ecx
push eax
call fcn.0049a840
lea ebx, [eax + 2]
lea ecx, [edi + 4]
push ebx
mov dword [ebp - 0xc4], edx
call fcn.0043fddf
lea eax, [ebx + ebx]
sub eax, dword [ebp - 0x40]
push eax
mov eax, dword [edi + 4]
add eax, dword [ebp - 0x40]
push 0
push eax
call fcn.0049a7e0
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x40]
add esp, 0xc
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], eax
cmp dword [ebp + 0x30], 4
jne 0x45498e
mov eax, dword [ebp + 0x50]
add eax, 3
and eax, 0xfffffffe
mov dword [ebp + 0x50], eax
xor edx, edx
xor eax, eax
cmp edx, eax
jl 0x45498e
jg 0x454988
cmp dword [ebp + 0x50], ecx
jbe 0x45498e
mov dword [ebp + 0x50], ecx
mov dword [ebp + 0x54], eax
push dword [ebp + 0x50]
mov eax, dword [edi + 4]
add eax, dword [ebp - 0x68]
push dword [ebp - 4]
push eax
call fcn.00413203
add esp, 0xc
jmp 0x45519c
cmp ecx, 0x100
jne 0x454c09
mov ecx, dword [ebp + 0x18]
xor edi, edi
push edi
push 0xffffffffffffffff
push dword [ebp - 0x38]
push dword [ebp + 0x44]
call fcn.0040fd4e
or dword [ebp + 4], 0xffffffff
mov dword [ebp - 0x4c], eax
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x20], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], edi
mov edi, dword [eax + 0x10]
xor eax, eax
mov dword [ebp - 0xfc], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0xbc], eax
mov dword [ebp + 0x40], eax
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp + 0x24]
push eax
mov dword [ebp], 0xfffffff8
call fcn.0040547b
lea eax, [ebp]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.0040547b
and dword [ebp + 0x48], 0
add esp, 0x10
cmp dword [ebp + 4], 0
jg 0x454a34
jl 0x454a27
cmp dword [ebp], 0
jae 0x454a34
mov dword [ebp + 0x48], 1
mov dword [ebp], esi
mov dword [ebp + 4], ebx
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.0040547b
mov eax, dword [ebp + 0x24]
movzx eax, word [eax]
pop ecx
pop ecx
mov ecx, eax
or ecx, 0x20
cmp cx, 0x73
je 0x454a5a
cmp cx, 0x69
jne 0x454a6f
mov ecx, eax
xor ecx, 0x20
test ax, ax
mov dword [ebp - 4], eax
mov dword [ebp - 0xbc], ecx
jne 0x454a79
jmp 0x454a75
mov ecx, dword [ebp - 0xbc]
and dword [ebp + 0x48], 0
xor eax, eax
cmp dword [ebp - 0x24], eax
jl 0x4550f5
jg 0x454a8f
cmp dword [ebp - 0x28], eax
jb 0x4550f5
cmp dword [ebp + 0x20], eax
jl 0x4550f5
jg 0x454aa3
cmp dword [ebp + 0x1c], eax
jb 0x4550f5
cmp dword [ebp + 4], eax
jl 0x4550f5
jg 0x454ab7
cmp dword [ebp], eax
jbe 0x4550f5
cmp dword [ebp + 0x20], ebx
jg 0x4550f5
jl 0x454acb
cmp dword [ebp + 0x1c], esi
ja 0x4550f5
mov eax, dword [ebp - 0xfc]
cmp dword [ebp - 0x24], eax
jg 0x4550f5
jl 0x454ae5
cmp dword [ebp - 0x28], edi
ja 0x4550f5
cmp dword [ebp + 0x48], 0
jne 0x454b31
sub esi, dword [ebp + 0x1c]
sbb ebx, dword [ebp + 0x20]
sub edi, dword [ebp - 0x28]
sbb eax, dword [ebp - 0x24]
cmp eax, ebx
jl 0x454b05
jg 0x454b01
cmp edi, esi
jbe 0x454b05
mov edi, esi
mov eax, ebx
cmp dword [ebp + 4], eax
jl 0x454b17
jg 0x454b11
cmp dword [ebp], edi
jbe 0x454b17
mov dword [ebp], edi
mov dword [ebp + 4], eax
test cl, 0x20
je 0x454b31
push 0
push 2
push dword [ebp + 4]
push dword [ebp]
call fcn.0049a840
mov dword [ebp], eax
mov dword [ebp + 4], edx
cmp dword [ebp + 4], 0
jl 0x454bfa
jg 0x454b47
cmp dword [ebp], 0
jbe 0x454bfa
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0x60]
mov eax, dword [eax + 4]
add eax, dword [ebp - 0x28]
add ecx, edx
mov edx, dword [ebp - 4]
cmp dx, 0x73
jne 0x454b81
cmp dword [ebp + 0x48], 0
je 0x454b74
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
jmp 0x454bf7
push dword [ebp]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNA]
jmp 0x454bf7
cmp dx, 0x53
jne 0x454ba4
cmp dword [ebp + 0x48], 0
je 0x454b97
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
jmp 0x454bf7
push dword [ebp]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
jmp 0x454bf7
cmp dx, 0x69
jne 0x454bc7
cmp dword [ebp + 0x48], 0
je 0x454bba
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x454bf7
push dword [ebp]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNIA]
jmp 0x454bf7
cmp dx, 0x49
jne 0x454bea
cmp dword [ebp + 0x48], 0
je 0x454bdd
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
jmp 0x454bf7
push dword [ebp]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
jmp 0x454bf7
push dword [ebp]
push ecx
push eax
call fcn.00439d3f
add esp, 0xc
mov dword [ebp + 0x40], eax
movsx eax, word [ebp + 0x40]
push eax
push 0x4af1c4
jmp 0x454866
cmp ecx, 1
jne 0x454cb1
xor ebx, ebx
push ebx
push 5
push ebx
shr esi, 1
push esi
call fcn.0049a8f0
mov edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp - 0xc4], edx
call fcn.0043fc68
push ebx
push ebx
push edi
push dword [ebp + 0x58]
push esi
push dword [ebp + 0x60]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
cdq
cmp edx, ebx
mov esi, eax
mov dword [ebp - 0x18], edx
jg 0x454c5d
jl 0x454c56
cmp esi, ebx
jae 0x454c5d
xor esi, esi
mov dword [ebp - 0x18], ebx
jmp 0x454c72
mov eax, dword [ebp - 0xc4]
cmp edx, eax
jl 0x454c72
jg 0x454c6d
cmp esi, edi
jbe 0x454c72
mov esi, edi
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0x58]
mov ecx, dword [ebp - 0x18]
mov byte [eax + esi], 0
push ebx
mov eax, esi
add eax, 1
push 2
adc ecx, ebx
push ecx
push eax
call fcn.0049a840
mov edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.0043fddf
mov eax, dword [ebp + 0x58]
mov word [eax + edi*2], bx
mov ebx, dword [ebp - 0x18]
mov byte [ebp + 0x73], 1
mov dword [ebp + 0x60], eax
jmp 0x454e38
cmp ecx, 2
jne 0x454d06
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp - 0x4c], ebx
call fcn.0043fddf
push esi
push dword [ebp + 0x58]
xor edi, edi
push esi
push dword [ebp + 0x60]
push edi
push edi
call dword [0x4c8ba0]
mov esi, eax
cmp esi, edi
jge 0x454cdf
xor esi, esi
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.0043fddf
mov ecx, dword [ebp + 0x58]
lea eax, [esi + esi]
mov word [eax + ecx], di
cdq
mov byte [ebp + 0x73], 1
mov dword [ebp + 0x60], ecx
mov esi, eax
mov ebx, edx
jmp 0x454e38
cmp ecx, 0x20
jne 0x45519c
mov ecx, dword [edi]
mov dword [ebp + 0x60], ecx
mov esi, dword [eax]
mov dword [ebp - 0x48], edi
mov dword [ebp - 0xa8], eax
mov byte [ebp + 0x73], 1
xor ebx, ebx
jmp 0x454e38
cmp byte [ebp + 0x67], 0
je 0x454d59
mov eax, dword [ebp + 0x60]
cmp word [eax], di
je 0x454d59
xor ecx, ecx
mov cl, byte [ebp - 0x8c]
or cl, byte [ebp + 0x67]
push ecx
push eax
lea ecx, [ebp + 0x3c]
call fcn.00448401
mov ecx, dword [ebp - 0x14]
push eax
call fcn.00453709
mov dword [ebp + 0x60], eax
mov eax, dword [ebp - 0x84]
dec eax
cmp eax, edi
jl 0x454d84
inc eax
mov dword [ebp + 0x70], eax
mov ecx, dword [ebp - 0x14]
push edi
push edi
lea eax, [ebp + 0x34]
push eax
push dword [ebp + 0x60]
call fcn.0044dca2
dec dword [ebp + 0x70]
mov eax, dword [ebp + 0x34]
mov dword [ebp + 0x60], eax
jne 0x454d68
mov eax, dword [ebp + 0x60]
cmp word [eax], di
je 0x454da9
lea eax, [ebp - 0x10]
push eax
push dword [ebp + 0x78]
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.00452e55
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x10]
add esp, 0x10
mov ecx, dword [ebp + 0x60]
cmp ecx, dword [ebp + 0x58]
sete byte [ebp + 0x73]
xor eax, eax
cmp eax, edi
jg 0x455361
jl 0x454dc8
cmp dword [ebp + 0x10], edi
ja 0x455361
cmp dword [ebp + 0x54], edi
jg 0x4555f1
jl 0x454ddc
cmp dword [ebp + 0x50], edi
ja 0x4555f1
cmp byte [ebp + 0x4f], 0
je 0x454e28
cmp ebx, edi
jl 0x455390
jg 0x454df4
cmp esi, edi
jbe 0x455390
push 0x4c9c14
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp + 0x18]
push edi
push 0xffffffffffffffff
push dword [ebp - 0x38]
push dword [ebp + 0x44]
call fcn.0040fd4e
cmp eax, edi
mov dword [ebp - 4], eax
jne 0x455704
push 0x4c9c14
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x454e38
cmp byte [ebp + 0x3b], 0
je 0x454e38
cmp byte [ebp + 0x2b], 0
je 0x4557e6
xor eax, eax
cmp dword [ebp - 0x20], eax
mov dword [ebp - 4], eax
je 0x454e70
cmp byte [ebp + 0x7c], al
jne 0x454e70
mov ecx, dword [ebp + 0x18]
test byte [ecx + 9], 0xf
jne 0x454e70
cmp byte [ebp + 0x73], al
jne 0x454e70
cmp dword [ebp - 0x44], eax
jge 0x454e70
cmp byte [ebp + 0x3b], al
jne 0x454e70
push dword [ebp + 0x60]
push dword [ebp + 0x44]
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
jmp 0x45508f
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x38]
push dword [ebp + 0x44]
call fcn.0040fd4e
mov edi, eax
test edi, edi
mov dword [ebp - 0x4c], edi
jne 0x454eeb
cmp dword [ebp - 0x44], eax
jge 0x454edf
cmp byte [ebp + 0x73], al
je 0x454e9f
xor ecx, ecx
mov dword [ebp - 0xbc], ecx
jmp 0x454ea7
mov ecx, esi
mov dword [ebp - 0xbc], ebx
cmp byte [ebp + 0x73], 0
mov eax, 0x4ae9fc
jne 0x454eb5
mov eax, dword [ebp + 0x60]
push ecx
mov ecx, dword [ebp + 0x18]
push 0xffffffffffffffff
push eax
push dword [ebp + 0x44]
call fcn.00413db1
cmp dword [ebp - 0x80], 0
mov edi, eax
je 0x454edb
test edi, edi
je 0x454edf
push dword [ebp - 0x80]
lea ecx, [edi + 8]
call fcn.0044845d
test edi, edi
jne 0x454eeb
mov dword [ebp - 4], 1
jmp 0x45508f
cmp dword [ebp - 0x44], 0
jl 0x455018
mov cl, byte [ebp - 0x34]
mov esi, dword [edi + 0x10]
xor edx, edx
inc edx
shl edx, cl
mov eax, esi
sub eax, dword [ebp - 0xa4]
xor ecx, ecx
cmp dword [ebp - 0x2c], ecx
ja 0x454f1e
jb 0x454f16
cmp dword [ebp - 0x30], eax
ja 0x454f1e
mov ebx, dword [ebp - 0x30]
or ebx, dword [ebp - 0x2c]
jne 0x454f24
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], ecx
mov edi, dword [edi + 4]
add edi, dword [ebp - 0xa4]
xor eax, eax
mov ecx, edi
sub ecx, edx
add ecx, dword [ebp - 0x30]
cmp dword [ebp - 0xa0], eax
ja 0x45508f
jb 0x454f50
cmp dword [ebp - 0xa4], esi
jae 0x45508f
cmp dword [ebp - 0x2c], 0
ja 0x454f60
cmp dword [ebp - 0x30], 0
jbe 0x45508f
cmp edx, 2
jb 0x455004
xor eax, eax
cmp dword [ebp - 0x2c], eax
jb 0x45508f
ja 0x454f7f
cmp dword [ebp - 0x30], edx
jb 0x45508f
cmp edx, 2
jne 0x454fb0
cmp edi, ecx
ja 0x45508f
mov eax, dword [ebp - 0x94]
mov dx, ax
sub ecx, edi
shr ecx, 1
inc ecx
shl edx, 0x10
mov dx, ax
shr ecx, 1
mov eax, edx
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
jmp 0x45508f
cmp edx, 4
jne 0x454fd0
cmp edi, ecx
ja 0x45508f
mov eax, dword [ebp - 0x94]
sub ecx, edi
shr ecx, 2
inc ecx
rep stosd dword es:[edi], eax
jmp 0x45508f
cmp edx, 8
jne 0x455004
cmp edi, ecx
ja 0x45508f
mov eax, dword [ebp - 0x94]
sub ecx, edi
mov dword [edi], eax
mov eax, dword [ebp - 0x90]
shr ecx, 2
mov dword [edi + 4], eax
and ecx, 0x3ffffffe
mov esi, edi
add edi, edx
rep movsd dword es:[edi], dword [esi]
jmp 0x45508f
push dword [ebp - 0x30]
push dword [ebp - 0x94]
push edi
call fcn.0049a7e0
add esp, 0xc
jmp 0x45508f
cmp byte [ebp + 0x3b], 0
jne 0x45508f
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x455054
mov al, byte [ecx + 0x17]
and al, 0xc0
cmp al, 0xc0
jne 0x45504c
cmp byte [ebp + 0x73], 0
je 0x45503c
mov eax, dword [ebp - 0x48]
mov eax, dword [eax]
mov dword [ebp + 0x60], eax
push ebx
push esi
push dword [ebp + 0x60]
push edi
call fcn.0043a395
add esp, 0x10
jmp 0x45508f
test al, al
je 0x455054
and dword [ecx + 4], 0
cmp byte [ebp + 0x73], 0
je 0x455080
mov ecx, dword [edi + 0x10]
mov eax, dword [ebp - 0xa8]
mov dword [eax], ecx
mov ecx, dword [edi + 0x14]
mov dword [eax + 4], ecx
mov edx, dword [edi + 4]
mov ecx, dword [ebp - 0x48]
mov eax, dword [ecx]
mov dword [ecx], edx
mov dword [edi + 4], eax
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], ebx
jmp 0x45508f
test ecx, ecx
je 0x45508f
push esi
push dword [ebp + 0x60]
mov ecx, edi
call fcn.00402e12
lea ecx, [ebp + 0x58]
call fcn.00439cfd
lea ecx, [ebp + 0x3c]
call fcn.00439cfd
lea ecx, [ebp + 0x34]
call fcn.00439cfd
cmp dword [ebp - 0x6c], 0
jle 0x45582c
mov esi, dword [ebp - 0xb0]
push dword [ebp - 0x58]
mov eax, dword [ebp - 0xac]
push dword [ebp - 0xb8]
dec dword [ebp - 0x6c]
push eax
mov dword [ebp + 0x44], eax
call fcn.0043caf6
push dword [ebp - 0x60]
mov dword [ebp + 0x60], esi
push dword [ebp - 0xb4]
push esi
call fcn.0043caf6
mov eax, dword [ebp - 0x70]
add dword [ebp - 0x58], eax
add esp, 0x18
add dword [ebp - 0x60], eax
jmp 0x454338
lea ecx, [ebp + 0x58]
call fcn.00439cfd
lea ecx, [ebp + 0x3c]
call fcn.00439cfd
lea ecx, [ebp + 0x34]
call fcn.00439cfd
lea ecx, [ebp + 0x5c]
call fcn.00439cfd
mov eax, 0x4c9c14
test eax, eax
je 0x455125
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, 0x80070057
jmp 0x455847
lea ecx, [ebp + 0x58]
call fcn.00439cfd
lea ecx, [ebp + 0x3c]
call fcn.00439cfd
lea ecx, [ebp + 0x34]
call fcn.00439cfd
lea ecx, [ebp + 0x5c]
call fcn.00439cfd
mov eax, 0x4c9c14
cmp eax, esi
jmp 0x45511c
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push 0x4ae9fc
push dword [ebp + 0x44]
call fcn.00413db1
xor ecx, ecx
cmp dword [ebp + 0x30], 0x83
mov edx, 0xc0000000
je 0x455181
mov edx, 0x80000000
or esi, ecx
or ebx, edx
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], ebx
mov ecx, dword [eax + 4]
mov dword [ebp + 0x7c], ecx
lea ecx, [ebp + 0x7c]
mov dword [eax + 4], edi
call fcn.00439cfd
lea ecx, [ebp + 0x58]
call fcn.00439cfd
lea ecx, [ebp + 0x3c]
call fcn.00439cfd
lea ecx, [ebp + 0x34]
call fcn.00439cfd
lea ecx, [ebp + 0x5c]
call fcn.00439cfd
mov eax, 0x4c9c14
test eax, eax
je 0x4551cc
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor edi, edi
jmp 0x455847
lea ecx, [ebp + 0x58]
call fcn.00439cfd
lea ecx, [ebp + 0x3c]
call fcn.00439cfd
lea ecx, [ebp + 0x34]
call fcn.00439cfd
lea ecx, [ebp + 0x5c]
call fcn.00439cfd
mov eax, 0x4c9c14
cmp eax, edi
jmp 0x45511c
mov eax, dword [ebp - 0x5c]
mov si, word [eax]
neg si
lea ecx, [ebp + 0x58]
sbb esi, esi
and esi, 0x7ff8ffa9
add esi, 0x80070057
call fcn.00439cfd
lea ecx, [ebp + 0x3c]
call fcn.00439cfd
lea ecx, [ebp + 0x34]
call fcn.00439cfd
lea ecx, [ebp + 0x5c]
call fcn.00439cfd
mov eax, 0x4c9c14
test eax, eax
je 0x455246
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, esi
jmp 0x455847
mov ecx, dword [edi + 0x10]
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp + 0x14], eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp + 0x24]
push eax
mov dword [ebp + 0x1c], esi
mov dword [ebp + 0x20], ebx
mov dword [ebp + 0x10], ecx
call fcn.0040547b
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.0040547b
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.0040547b
add esp, 0x18
cmp dword [ebp - 0x24], 0
jl 0x4550f5
jg 0x4552aa
cmp dword [ebp - 0x28], 0
jb 0x4550f5
cmp dword [ebp + 0x20], 0
jl 0x4550f5
jg 0x4552c0
cmp dword [ebp + 0x1c], 0
jbe 0x4550f5
cmp dword [ebp - 0x24], ebx
jg 0x4550f5
jl 0x4552d4
cmp dword [ebp - 0x28], esi
ja 0x4550f5
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp + 0x14]
jg 0x4550f5
mov ecx, dword [ebp - 0x1c]
jl 0x4552ee
cmp ecx, dword [ebp + 0x10]
ja 0x4550f5
test eax, eax
jg 0x4552fc
jl 0x4552f8
test ecx, ecx
jae 0x4552fc
xor ecx, ecx
xor eax, eax
sub esi, dword [ebp - 0x28]
sbb ebx, dword [ebp - 0x24]
sub dword [ebp + 0x10], ecx
sbb dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x20]
cmp eax, ebx
jl 0x45531b
jg 0x455316
cmp dword [ebp + 0x1c], esi
jbe 0x45531b
mov dword [ebp + 0x1c], esi
mov eax, ebx
cmp eax, dword [ebp + 0x14]
jl 0x455332
jg 0x45532a
mov edx, dword [ebp + 0x1c]
cmp edx, dword [ebp + 0x10]
jbe 0x455335
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
jmp 0x455335
mov edx, dword [ebp + 0x1c]
test eax, eax
jl 0x45519c
jg 0x455347
test edx, edx
jbe 0x45519c
mov eax, dword [ebp + 0x60]
push edx
mov edx, dword [ebp - 0x28]
add eax, edx
push eax
mov eax, dword [edi + 4]
add eax, ecx
push eax
call fcn.004131b9
jmp 0x4549a0
mov dword [ebp + 0xc], ecx
lea ecx, [ebp + 0x7c]
call fcn.0043fd9a
mov ecx, dword [ebp - 0x54]
push 0x2c
push 0x3a
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.0043525c
mov eax, dword [ebp + 0x7c]
cmp word [eax], di
jne 0x4553c9
lea ecx, [ebp + 0x7c]
call fcn.00439cfd
lea ecx, [ebp + 0x58]
call fcn.00439cfd
lea ecx, [ebp + 0x3c]
call fcn.00439cfd
lea ecx, [ebp + 0x34]
call fcn.00439cfd
lea ecx, [ebp + 0x5c]
call fcn.00439cfd
mov eax, 0x4c9c14
cmp eax, edi
je 0x455847
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x455847
mov eax, dword [ebp + 0xc]
xor bl, bl
cmp word [eax], 0x7e
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x20], edi
jne 0x4553e1
add dword [ebp + 0xc], 2
mov bl, byte [ebp + 0x50]
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.0044b318
test bl, bl
pop ecx
pop ecx
je 0x45540a
push dword [ebp + 0x20]
movsx eax, bl
push dword [ebp + 0x1c]
cdq
push edx
push eax
call fcn.0049a8f0
mov dword [ebp + 0x1c], eax
jmp 0x45540d
mov edx, dword [ebp + 0x20]
mov esi, dword [ebp + 0x1c]
add esi, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x18]
adc edx, dword [ebp + 0x54]
push edi
push 0xffffffffffffffff
push dword [ebp - 0x38]
mov ebx, edx
push dword [ebp + 0x44]
mov word [ebp - 0x1e0], di
call fcn.0040fd4e
xor ecx, ecx
cmp eax, edi
mov dword [ebp + 0x70], 1
mov dword [ebp - 0x18], edi
je 0x455446
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x18], edi
cmp dword [ebp - 0x18], ebx
jl 0x45559f
jg 0x455459
cmp ecx, esi
jb 0x45559f
mov eax, dword [eax + 4]
add eax, dword [ebp + 0x1c]
push dword [ebp + 0x50]
mov dword [ebp + 0x70], edi
push eax
lea eax, [ebp - 0xf8]
push eax
call fcn.00413203
add esp, 0xc
cmp dword [ebp - 0x7c], edi
je 0x45549d
fld dword [ebp - 0xf8]
push 0x4b71fc
push ecx
lea eax, [ebp - 0x1e0]
fstp dword [esp]
push eax
call fcn.0048ca3c
add esp, 0xc
jmp 0x45559f
cmp dword [ebp - 0x74], edi
je 0x4554c3
fld qword [ebp - 0xf8]
push 0x4b6f50
push ecx
push ecx
lea eax, [ebp - 0x1e0]
fstp qword [esp]
push eax
call fcn.0048ca65
jmp 0x45559c
cmp dword [ebp - 0x78], edi
je 0x4554e9
fld qword [ebp - 0xf8]
push 0x4b6f50
push ecx
push ecx
lea eax, [ebp - 0x1e0]
fstp qword [esp]
push eax
call fcn.0048ca65
jmp 0x45559c
cmp dword [ebp + 0x10], 0x64
jne 0x455502
xor eax, eax
cmp eax, edi
jne 0x455502
push dword [ebp - 0xf8]
push str.0x_p
jmp 0x455544
mov ecx, dword [ebp - 0x40]
cmp ecx, 1
jne 0x45551a
xor eax, eax
cmp eax, edi
jne 0x45551a
movsx eax, byte [ebp - 0xf8]
push eax
jmp 0x45553f
cmp ecx, 2
jne 0x45552e
xor eax, eax
cmp eax, edi
jne 0x45552e
movsx eax, word [ebp - 0xf8]
jmp 0x455517
cmp ecx, 4
jne 0x455556
xor eax, eax
cmp eax, edi
jne 0x455556
push dword [ebp - 0xf8]
push 0x4af1c4
lea eax, [ebp - 0x1e0]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
jmp 0x455495
cmp ecx, 8
jne 0x455581
xor eax, eax
cmp eax, edi
jne 0x455581
push dword [ebp - 0xf4]
lea eax, [ebp - 0x1e0]
push dword [ebp - 0xf8]
push str._I64d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
jmp 0x45559c
push dword [ebp + 0x2c]
lea eax, [ebp - 0x1e0]
push dword [ebp - 0xf4]
push dword [ebp - 0xf8]
push eax
call fcn.0048c9e0
add esp, 0x10
mov ecx, dword [ebp + 0x18]
lea eax, [ebp - 0x1e0]
push eax
push dword [ebp + 0x7c]
call fcn.0043f62b
lea ecx, [ebp + 0x7c]
call fcn.00439cfd
lea ecx, [ebp + 0x58]
call fcn.00439cfd
lea ecx, [ebp + 0x3c]
call fcn.00439cfd
lea ecx, [ebp + 0x34]
call fcn.00439cfd
lea ecx, [ebp + 0x5c]
call fcn.00439cfd
mov eax, 0x4c9c14
cmp eax, edi
je 0x4555e9
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, dword [ebp + 0x70]
jmp 0x455847
cmp dword [ebp - 0x7c], edi
mov dword [ebp + 0x7c], ecx
je 0x455611
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.00442c7a
fld qword [ebp - 0x50]
fstp dword [ebp - 0xf8]
jmp 0x455643
cmp dword [ebp - 0x74], edi
jne 0x45561b
cmp dword [ebp - 0x78], edi
je 0x455633
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.00442c7a
fld qword [ebp - 0x50]
fstp qword [ebp - 0xf8]
jmp 0x455643
lea eax, [ebp - 0xf8]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.0044b318
mov eax, dword [ebp + 0x7c]
pop ecx
xor bl, bl
cmp word [eax], di
pop ecx
je 0x455693
add dword [ebp + 0x7c], 2
mov eax, dword [ebp + 0x7c]
cmp word [eax], 0x7e
jne 0x455663
add dword [ebp + 0x7c], 2
mov bl, byte [ebp + 0x50]
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp + 0x7c]
push eax
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x64], edi
call fcn.0044b318
test bl, bl
pop ecx
pop ecx
je 0x455693
push dword [ebp - 0x64]
movsx eax, bl
push dword [ebp - 0x68]
cdq
push edx
push eax
call fcn.0049a8f0
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x38]
push dword [ebp + 0x44]
call fcn.0040fd4e
mov edi, eax
test edi, edi
jne 0x4548d5
mov ecx, dword [ebp + 0x18]
push eax
push 0xffffffffffffffff
push 0x4ae9fc
push dword [ebp + 0x44]
call fcn.00413db1
mov edi, eax
test edi, edi
jne 0x4548d5
lea ecx, [ebp + 0x58]
call fcn.00439cfd
lea ecx, [ebp + 0x3c]
call fcn.00439cfd
lea ecx, [ebp + 0x34]
call fcn.00439cfd
lea ecx, [ebp + 0x5c]
call fcn.00439cfd
mov eax, 0x4c9c14
test eax, eax
je 0x4556fc
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor edi, edi
inc edi
jmp 0x455847
mov edi, dword [ebp - 4]
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x40], eax
mov eax, dword [edi + 0x14]
add edi, 4
mov edx, dword [edi]
xor ecx, ecx
test eax, eax
mov dword [ebp + 0x70], edx
jg 0x45578d
jl 0x455725
cmp dword [ebp - 0x40], ecx
jae 0x45578d
and dword [edi], 0
mov byte [ebp + 0x7f], 1
mov eax, dword [ebp - 0x40]
add eax, esi
push 0
adc ecx, ebx
push 2
push ecx
push eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ecx
call fcn.0049a840
mov ebx, eax
lea eax, [ebx + 2]
push eax
mov ecx, edi
mov dword [ebp - 0xc4], edx
call fcn.0043fddf
mov ecx, dword [edi]
lea eax, [ebx + ebx]
and word [eax + ecx + 2], 0
mov ecx, dword [edi]
and word [eax + ecx], 0
cmp byte [ebp + 0x4f], 1
mov edi, dword [edi]
jne 0x455793
cmp byte [ebp + 0x7f], 0
je 0x455786
push dword [ebp - 0x40]
push dword [ebp + 0x70]
push edi
call fcn.00413203
add esp, 0xc
mov eax, dword [ebp - 0x40]
add edi, eax
jmp 0x4557ba
mov byte [ebp + 0x7f], 0
jmp 0x45572c
cmp byte [ebp + 0x4f], 2
jne 0x4557c7
cmp byte [ebp + 0x7f], 0
push dword [ebp - 0x40]
lea eax, [esi + edi]
je 0x4557b0
push dword [ebp + 0x70]
push eax
call fcn.00413203
jmp 0x4557b7
push edi
push eax
call fcn.004131b9
add esp, 0xc
push esi
push dword [ebp + 0x60]
push edi
call fcn.00413203
add esp, 0xc
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x1c]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x18]
push 0x4c9c14
mov dword [eax + 0x14], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x45519c
mov ecx, dword [ebp + 0x18]
xor edi, edi
push edi
push 0xffffffffffffffff
push dword [ebp - 0x38]
push dword [ebp + 0x44]
call fcn.0040fd4e
mov esi, eax
cmp esi, edi
je 0x45519c
test byte [esi + 0x17], 0xc0
je 0x455814
mov eax, dword [esi + 4]
mov word [eax], di
jmp 0x45519c
push 0x4ae9fc
lea ecx, [esi + 4]
call fcn.00448401
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
jmp 0x45519c
lea ecx, [ebp + 0x5c]
call fcn.00439cfd
mov eax, 0x4c9c14
test eax, eax
je 0x455844
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, dword [ebp - 4]
lea ecx, [ebp - 0x5c]
call fcn.00439cfd
lea ecx, [ebp - 0x88]
call fcn.00439cfd
mov eax, edi
pop edi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10