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

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x230
or dword [ebp - 0x54], 0xffffffff
or dword [ebp - 0xc], 0xffffffff
push ebx
push esi
mov esi, dword [ebp + 0x78]
push edi
xor edi, edi
cmp esi, edi
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x5c], edi
mov byte [ebp + 0x67], 0
mov byte [ebp + 0x4e], 0
mov byte [ebp + 0x1a], 0
mov dword [ebp + 0x30], edi
mov dword [ebp - 0x28], edi
mov dword [ebp + 0x34], edi
mov dword [ebp - 0x7c], 1
mov dword [ebp - 8], edi
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x78], edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x1c], edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x58], edi
mov dword [ebp + 0x2c], str._I64d
je 0x452e47
cmp word [esi], di
je 0x452e47
xor ebx, ebx
mov bx, word [esi]
mov eax, ebx
call fcn.00437e2d
test al, al
jne 0x452e32
cmp bx, 0x2e
je 0x452e27
cmp bx, 0x24
je 0x452e27
cmp bx, 0x25
je 0x452e27
cmp bx, 0x2a
jne 0x45266e
or byte [ebp + 0x67], 4
jmp 0x452e27
push 0x7e
pop ecx
cmp bx, cx
jne 0x4526bf
lea eax, [esi + 2]
cmp word [eax], cx
jne 0x452689
or byte [ebp + 0x67], 2
mov esi, eax
jmp 0x452e27
cmp bx, cx
jne 0x4526bf
lea eax, [esi + 2]
cmp word [eax], 0x2e
jne 0x45269d
or byte [ebp + 0x67], 8
jmp 0x452682
cmp bx, cx
jne 0x4526bf
lea eax, [esi + 2]
cmp word [eax], 0x2a
jne 0x4526b1
or byte [ebp + 0x67], 0xa
jmp 0x452682
cmp bx, cx
jne 0x4526bf
or byte [ebp + 0x67], 1
jmp 0x452e27
push 4
push esi
push str._std
call fcn.0043917b
add esp, 0xc
test al, al
je 0x4526e2
add esi, 6
mov dword [ebp - 0x7c], 0x80
jmp 0x452e27
push 4
push esi
push str._env
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452705
add esi, 6
mov dword [ebp - 0x7c], 0x40
jmp 0x452e27
push 4
push esi
push str._raw
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452728
add esi, 6
mov dword [ebp - 8], 0x40
jmp 0x452e27
cmp bx, 0x3c
jne 0x452737
mov byte [ebp + 0x4e], 1
jmp 0x452e27
cmp bx, 0x3e
jne 0x452746
mov byte [ebp + 0x4e], 2
jmp 0x452e27
push 4
pop ebx
push ebx
push esi
push str._def
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452768
add esi, 6
add byte [ebp + 0x7c], 2
jmp 0x452e27
push ebx
push esi
push str._tom
call fcn.0043917b
add esp, 0xc
test al, al
je 0x45278a
add esi, 6
mov dword [ebp + 0x30], 1
jmp 0x452e27
push ebx
push esi
push str._tow
call fcn.0043917b
add esp, 0xc
test al, al
je 0x4527ac
add esi, 6
mov dword [ebp + 0x30], 2
jmp 0x452e27
push 5
push esi
push str._copy
call fcn.0043917b
add esp, 0xc
test al, al
je 0x4527cb
add esi, 8
mov dword [ebp + 0x30], ebx
jmp 0x452e27
push ebx
push esi
push str._cmp
call fcn.0043917b
add esp, 0xc
test al, al
je 0x4527ed
add esi, 8
mov dword [ebp + 0x30], 0x100
jmp 0x452e27
push 5
push esi
push str._addr
call fcn.0043917b
add esp, 0xc
test al, al
je 0x45280e
push 8
pop eax
add esi, eax
mov dword [ebp + 0x30], eax
jmp 0x452e27
push 0xb
push esi
push str._mkfixdummy
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452831
add esi, 0x14
mov dword [ebp + 0x30], 0x83
jmp 0x452e27
push 8
push esi
push str._mkdummy
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452854
add esi, 0xe
mov dword [ebp + 0x30], 0x81
jmp 0x452e27
push 5
push esi
push str._make
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452877
add esi, 8
mov dword [ebp + 0x30], 0x80
jmp 0x452e27
push 5
push esi
push str._swap
call fcn.0043917b
add esp, 0xc
test al, al
je 0x45289a
add esi, 8
mov dword [ebp + 0x30], 0x20
jmp 0x452e27
push 5
push esi
push str._char
call fcn.0043917b
add esp, 0xc
test al, al
je 0x4528c0
mov dword [ebp + 0x50], 1
mov dword [ebp + 0x54], edi
add esi, 8
jmp 0x452e27
push 6
push esi
push str._wchar
call fcn.0043917b
add esp, 0xc
test al, al
je 0x4528e6
mov dword [ebp + 0x50], 2
mov dword [ebp + 0x54], edi
add esi, 0xa
jmp 0x452e27
push 6
push esi
push str._short
call fcn.0043917b
add esp, 0xc
test al, al
jne 0x4528d4
push ebx
push esi
push str._ptr
call fcn.0043917b
add esp, 0xc
test al, al
je 0x45291b
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], edi
add esi, 6
jmp 0x452e27
push 6
push esi
push str._float
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452937
mov dword [ebp - 0x64], ebx
mov dword [ebp + 0x50], ebx
jmp 0x4528db
push 7
push esi
push str._double
call fcn.0043917b
add esp, 0xc
test al, al
push 8
je 0x45295f
pop eax
mov dword [ebp - 0x68], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], edi
add esi, 0xc
jmp 0x452e27
push esi
push str._ldouble
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452985
push 8
pop eax
mov dword [ebp - 0x60], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], edi
add esi, 0xe
jmp 0x452e27
push 6
push esi
push str._int64
call fcn.0043917b
add esp, 0xc
test al, al
je 0x4529ab
add esi, 0xa
mov dword [ebp + 0x50], 8
mov dword [ebp + 0x54], edi
jmp 0x452e27
push 9
push esi
push str._longlong
call fcn.0043917b
add esp, 0xc
test al, al
je 0x4529c4
add esi, 0x10
jmp 0x45299c
push 5
push esi
push str._long
call fcn.0043917b
add esp, 0xc
test al, al
jne 0x4529ec
push 5
push esi
push str._long
call fcn.0043917b
add esp, 0xc
test al, al
je 0x4529f4
mov dword [ebp + 0x50], ebx
jmp 0x4528b5
push 5
push esi
push str._zero
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452a13
add esi, 8
mov dword [ebp - 0xc], edi
jmp 0x452e27
push 7
push esi
push str._intsys
call fcn.0043917b
add esp, 0xc
test al, al
jne 0x452c4e
push ebx
push esi
push str._int
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452a5d
mov ax, word [esi + 8]
and ax, 0xffdf
cmp ax, 0x41
jb 0x452a52
cmp ax, 0x5a
jbe 0x452a5d
add esi, 6
mov dword [ebp + 0x50], ebx
jmp 0x4529a3
push 5
push esi
push 0x4af054
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452aa0
xor eax, eax
inc eax
add esi, 8
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x1c], eax
lea eax, [esi + 2]
cmp word [eax], 0x30
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x2c], str.0x_I64X
jne 0x452cdd
mov dword [ebp + 0x2c], str.0x_02I64X
jmp 0x452cdb
push 6
push esi
push 0x4af028
call fcn.0043917b
add esp, 0xc
test al, al
jne 0x452ac8
push 6
push esi
push 0x4af020
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452af7
push 2
pop eax
add esi, 0xa
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x1c], eax
lea eax, [esi + 2]
cmp word [eax], 0x30
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x2c], str.0x_I64X
jne 0x452cdd
mov dword [ebp + 0x2c], str.0x_04I64X
jmp 0x452cdb
push ebx
push esi
push 0x4af004
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452b33
add esi, 6
lea eax, [esi + 2]
cmp word [eax], 0x30
mov dword [ebp + 0x1c], 0x64
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x2c], str.0x_I64X
jne 0x452cdd
jmp 0x452cdb
push 6
push esi
push 0x4aeffc
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452b5b
add esi, 0xa
mov dword [ebp - 0x64], ebx
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x1c], ebx
jmp 0x452e27
push 7
push esi
push 0x4aeff4
call fcn.0043917b
add esp, 0xc
test al, al
push 8
je 0x452b86
pop eax
add esi, 0xc
mov dword [ebp - 0x68], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x1c], eax
jmp 0x452e27
push esi
push 0x4aefe8
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452ba3
push 8
pop eax
add esi, 0xe
mov dword [ebp - 0x60], eax
jmp 0x452b78
push 6
push esi
push 0x4aefe0
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452bbc
add esi, 0xa
jmp 0x452bd3
push 9
push esi
push 0x4aefd4
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452bf8
add esi, 0x10
push 8
pop eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x1c], eax
lea eax, [esi + 2]
cmp word [eax], 0x30
mov dword [ebp + 0x54], edi
jne 0x452cdd
mov dword [ebp + 0x2c], str.0x_016I64X
jmp 0x452cdb
push 5
push esi
push 0x4aefb4
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452c1b
add esi, 8
mov dword [ebp + 0x2c], str.0x_I64X
jmp 0x452cc2
push 6
push esi
push str._intpe
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452c37
add esi, 0xa
jmp 0x452cc2
push 7
push esi
push 0x4aefa4
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452c98
mov dword [ebp + 0x1c], ebx
mov cl, byte [0x4c0be5]
add esi, 0xc
cmp cl, 3
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], edi
jne 0x452c6c
mov dword [ebp + 0x50], 8
mov dword [ebp + 0x54], edi
lea eax, [esi + 2]
cmp word [eax], 0x30
jne 0x452e27
cmp cl, 3
mov esi, eax
je 0x452c8c
mov dword [ebp + 0x2c], str.0x_08I64X
jmp 0x452e27
mov dword [ebp + 0x2c], str.0x_016I64X
jmp 0x452e27
push ebx
push esi
push 0x4aef88
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452cf4
mov ax, word [esi + 8]
and ax, 0xffdf
cmp ax, 0x41
jb 0x452cbf
cmp ax, 0x5a
jbe 0x452cf4
add esi, 6
lea eax, [esi + 2]
cmp word [eax], 0x30
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x1c], ebx
jne 0x452cdd
mov dword [ebp + 0x2c], str.0x_08I64X
mov esi, eax
lea eax, [esi + 2]
cmp word [eax], 0x40
jne 0x452e27
add dword [ebp + 0x2c], ebx
mov esi, eax
jmp 0x452e27
push ebx
push esi
push str._ret
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452d37
add esi, 8
cmp word [esi], 0x3a
mov dword [ebp - 0x28], 1
mov dword [ebp + 0x5c], esi
jne 0x452d1f
inc esi
inc esi
mov dword [ebp + 0x5c], esi
mov ax, word [esi]
call fcn.0043d98b
test al, al
je 0x452e25
lea eax, [ebp - 0x28]
jmp 0x452db9
push ebx
push esi
push str._get
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452d77
add esi, 8
cmp word [esi], 0x3a
mov dword [ebp + 0x34], 1
mov dword [ebp + 0x5c], esi
jne 0x452d62
inc esi
inc esi
mov dword [ebp + 0x5c], esi
mov ax, word [esi]
call fcn.0043d98b
test al, al
je 0x452e25
lea eax, [ebp + 0x34]
jmp 0x452db9
push 3
push esi
push 0x4aef74
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452d96
add esi, ebx
mov byte [ebp + 0x1a], 1
jmp 0x452e27
push 2
push esi
push 0x4aef70
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452dca
add esi, ebx
mov dword [ebp + 0x5c], esi
mov dword [ebp - 0x78], 1
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp + 0x5c]
push eax
call fcn.0044957c
mov esi, dword [ebp + 0x5c]
pop ecx
pop ecx
jmp 0x452e25
push 2
push esi
push 0x4aef6c
call fcn.0043917b
add esp, 0xc
test al, al
je 0x452e27
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp + 0x5c]
add esi, ebx
push eax
mov dword [ebp + 0x5c], esi
call fcn.004051ad
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp + 0x5c]
push eax
call fcn.004051ad
mov esi, dword [ebp - 0x44]
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp + 0x5c]
push eax
mov dword [ebp - 0x58], esi
call fcn.0044957c
mov eax, dword [ebp - 0x48]
sub eax, esi
mov esi, dword [ebp + 0x5c]
add esp, 0x18
inc eax
cmp word [esi], 0x5d
mov dword [ebp - 0x54], eax
je 0x452e27
dec esi
dec esi
inc esi
inc esi
cmp word [esi], di
jne 0x45262d
cmp dword [ebp - 8], edi
je 0x452e47
mov eax, dword [ebp + 0x78]
mov dword [ebp + 0x70], eax
lea eax, [ebp + 0x70]
push eax
call fcn.00405172
pop ecx
mov eax, dword [ebp + 0x70]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
push eax
call fcn.00437e65
mov eax, dword [ebp - 0x10]
pop ecx
jmp 0x452e64
inc byte [ebp + 0x7c]
inc eax
inc eax
mov dword [ebp - 0x10], eax
cmp word [eax], 0x26
je 0x452e5c
lea ecx, [ebp - 0x74]
call fcn.0043dd7e
mov eax, dword [ebp - 0x10]
mov dword [ebp + 0x40], eax
jmp 0x452e85
cmp cx, 0x3d
je 0x452e8d
inc eax
inc eax
mov dword [ebp - 0x10], eax
mov cx, word [eax]
cmp cx, di
jne 0x452e7a
mov dword [ebp + 0x60], 0x4a69d4
cmp word [eax], 0x3d
mov ecx, eax
mov byte [ebp + 0x3b], 0
je 0x452ea6
mov byte [ebp + 0x3b], 1
jmp 0x452eae
inc eax
inc eax
mov dword [ebp - 0x10], eax
mov dword [ebp + 0x60], eax
mov word [ecx], di
push dword [ebp + 0x40]
call fcn.0040f54c
mov eax, dword [ebp + 0x40]
cmp word [eax], 0x7e
pop ecx
jne 0x452efe
inc eax
inc eax
mov edx, eax
mov dword [ebp - 0x5c], edx
jmp 0x452ed4
cmp cx, 0x7e
je 0x452edf
inc eax
inc eax
mov dword [ebp + 0x40], eax
mov cx, word [eax]
cmp cx, di
jne 0x452ecc
cmp word [eax], 0x7e
je 0x452eef
mov esi, 0x80070057
jmp 0x454326
mov word [eax], di
add dword [ebp + 0x40], 2
cmp word [edx], di
jne 0x452efe
mov dword [ebp - 0x5c], edi
lea ecx, [ebp - 0x50]
call fcn.0043dd7e
mov esi, dword [ebp - 0x4c]
push 0x3b
push 0x2c
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x40]
push eax
mov ecx, esi
call fcn.00433707
push 0x3b
push 0x2c
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp + 0x40]
push eax
mov ecx, esi
call fcn.00433707
cmp dword [ebp + 0x30], 8
mov eax, dword [ebp - 0x74]
mov dword [ebp + 0x40], eax
je 0x452f4f
cmp word [eax], di
jne 0x452f4f
mov eax, dword [ebp - 0x50]
cmp word [eax], di
jne 0x452f4f
xor esi, esi
jmp 0x45431e
cmp byte [ebp + 0x7c], 2
mov edx, esi
setge byte [ebp + 0x2b]
mov al, byte [ebp + 0x2b]
neg al
mov dword [ebp - 8], edx
sbb eax, eax
and eax, esi
cmp dword [ebp - 0x28], edi
mov dword [ebp - 0x2c], eax
mov eax, esi
mov dword [ebp + 0x24], eax
jle 0x452f90
dec dword [ebp - 0x28]
js 0x452f87
mov ecx, dword [ebp - 0x28]
inc ecx
sub dword [ebp - 0x28], ecx
dec ecx
mov eax, dword [eax + 0x24]
jne 0x452f7e
mov dword [ebp + 0x24], eax
cmp byte [ebp + 0x2b], 0
je 0x452f90
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x34]
cmp eax, edi
jle 0x452fa4
dec eax
js 0x452fa4
inc eax
dec eax
mov edx, dword [edx + 0x24]
jne 0x452f9b
mov dword [ebp - 8], edx
cmp byte [ebp + 0x3b], 0
je 0x452fb1
mov byte [ebp + 0x4e], 0
mov dword [ebp + 0x30], edi
push 0x4c1b94
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [ebp - 0x54], edi
mov dword [ebp + 0x5c], edi
mov dword [ebp - 0xa4], edi
mov dword [ebp - 0x94], edi
mov dword [ebp - 0x90], edi
mov dword [ebp - 0xa8], edi
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
jle 0x45302a
push dword [ebp + 0x40]
call edi
push dword [ebp + 0x60]
mov esi, eax
inc esi
call edi
inc eax
lea eax, [eax + esi + 0xc8]
push eax
lea ecx, [ebp + 0x5c]
call fcn.0043ddc3
mov eax, dword [ebp + 0x40]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp + 0x5c]
lea esi, [eax + esi*2 + 0x50]
mov dword [ebp - 0x90], eax
mov dword [ebp - 0xa8], esi
jmp 0x453c74
xor esi, esi
push 0xa
xor eax, eax
pop ecx
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0xdc], esi
lea edi, [ebp - 0xd8]
rep stosd dword es:[edi], eax
xor ebx, ebx
lea eax, [ebp - 0xe0]
lea ecx, [ebp + 0x44]
mov dword [ebp + 4], esi
mov dword [ebp + 8], ebx
mov byte [ebp + 0x73], bl
mov dword [ebp - 0x38], eax
mov dword [ebp + 0x3c], esi
call fcn.0043dd7e
xor eax, eax
cmp dword [ebp - 0xc], eax
lea ecx, [ebp + 0x58]
mov dword [ebp - 0x48], ecx
lea ecx, [ebp - 0x40]
mov dword [ebp + 0x58], eax
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 4], eax
mov dword [ebp], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
jl 0x4530ed
mov byte [ebp + 0x4f], al
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.004051ad
test eax, eax
pop ecx
pop ecx
jle 0x4530a6
movzx eax, byte [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x60]
cmp word [eax], 0
je 0x453ac4
lea eax, [ebp + 0x4f]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0045256b
mov eax, dword [ebp + 0x60]
add esp, 0xc
cmp word [eax], 0
je 0x453ac4
lea eax, [ebp + 0x4f]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0045256b
add esp, 0xc
jmp 0x453ac4
cmp byte [ebp + 0x1a], 0
je 0x45310b
push dword [ebp + 0x60]
push dword [ebp - 8]
call fcn.0044127a
pop ecx
pop ecx
push 2
mov dword [ebp + 0x60], eax
pop esi
jmp 0x4539b5
test byte [ebp + 0x30], 0x80
je 0x453436
mov esi, dword [ebp + 0x60]
xor ecx, ecx
push 0x26
or ebx, 0xffffffff
pop eax
cmp word [esi], ax
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x88], ecx
mov dword [ebp + 4], ecx
mov dword [ebp + 8], ecx
mov dword [ebp + 0x48], esi
mov edi, ebx
mov byte [ebp + 0x4f], cl
mov byte [ebp + 0x3a], cl
mov dword [ebp + 0x34], ecx
jne 0x4531eb
push 2
mov byte [ebp + 0x4f], 1
pop edx
cmp ax, 0x3b
je 0x453175
cmp ax, 0x2c
je 0x453175
cmp ax, 0x3a
je 0x453175
cmp ax, 0x40
je 0x453175
add esi, edx
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x48], esi
jne 0x453150
mov ax, word [esi]
cmp ax, cx
je 0x453185
mov word [esi], cx
add esi, edx
mov dword [ebp + 0x48], esi
cmp ax, 0x40
jne 0x4531c2
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x34], esi
je 0x4531c2
cmp ax, 0x3b
je 0x4531b5
cmp ax, 0x2c
je 0x4531b5
cmp ax, 0x3a
je 0x4531b5
add esi, edx
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x48], esi
jne 0x453196
cmp word [esi], cx
je 0x4531c2
mov word [esi], cx
add esi, edx
mov dword [ebp + 0x48], esi
mov ecx, dword [ebp - 8]
push 0
push 0xffffffffffffffff
push 0
push dword [ebp + 0x60]
call fcn.0040f3c5
test eax, eax
je 0x453cb3
mov ecx, dword [eax + 4]
mov dword [ebp + 0x60], ecx
mov edi, dword [eax + 0x10]
xor ebx, ebx
jmp 0x4532cd
push 5
push esi
push str._shm_
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x45331c
add esi, 0xa
mov ecx, esi
xor edi, edi
jmp 0x453224
cmp ax, 0x3b
je 0x45322f
cmp ax, 0x2c
je 0x45322f
cmp ax, 0x3a
je 0x45322f
cmp ax, 0x40
je 0x45322f
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x48], esi
jne 0x45320a
mov ax, word [esi]
cmp ax, di
je 0x45323f
mov word [esi], di
inc esi
inc esi
mov dword [ebp + 0x48], esi
cmp ax, 0x40
jne 0x45327c
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x34], esi
je 0x45327c
cmp ax, 0x3b
je 0x45326f
cmp ax, 0x2c
je 0x45326f
cmp ax, 0x3a
je 0x45326f
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x48], esi
jne 0x453250
cmp word [esi], di
je 0x45327c
mov word [esi], di
inc esi
inc esi
mov dword [ebp + 0x48], esi
cmp word [ecx], di
je 0x453d5f
mov eax, 0x4a69d4
push eax
push eax
push eax
push 0xffffffffffffffff
push ecx
mov ecx, dword [ebp - 0x4c]
call fcn.0043abfc
cmp eax, edi
je 0x453d5f
cmp dword [eax + 4], 0x14
jne 0x453d5f
cmp dword [eax + 0x48], 0xfffffffe
jne 0x453d5f
cmp dword [eax + 0x50], edi
jle 0x453d5f
mov ecx, dword [eax + 0x44]
mov dword [ebp + 0x60], ecx
mov eax, dword [eax + 0x50]
dec eax
dec eax
cdq
mov edi, eax
mov ebx, edx
cmp dword [ebp + 0x34], 0
mov dword [ebp + 4], edi
mov dword [ebp + 8], ebx
je 0x45333f
lea eax, [ebp + 0x3a]
push eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp + 0x34]
push eax
call fcn.0045256b
add esp, 0xc
test eax, eax
jle 0x45333f
cmp dword [ebp - 0x88], 0
jl 0x45333f
mov eax, dword [ebp - 0x8c]
jg 0x453309
test eax, eax
jbe 0x45333f
add dword [ebp + 0x60], eax
sub edi, eax
sbb ebx, dword [ebp - 0x88]
mov dword [ebp + 4], edi
mov dword [ebp + 8], ebx
jmp 0x45333f
lea eax, [ebp + 0x3a]
push eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp + 0x48]
push eax
call fcn.0045256b
mov eax, dword [ebp - 0x8c]
mov esi, dword [ebp + 0x48]
add esp, 0xc
mov dword [ebp + 0x60], eax
cmp word [esi], 0x7e
sete byte [ebp + 0xf]
cmp byte [ebp + 0xf], 0
je 0x453352
inc esi
inc esi
mov dword [ebp + 0x48], esi
cmp word [esi], 0x2a
sete byte [ebp + 0x1b]
cmp byte [ebp + 0x1b], 0
je 0x453369
inc esi
inc esi
mov dword [ebp + 0x48], esi
mov byte [ebp + 0x3a], 0
lea eax, [ebp + 0x3a]
push eax
lea eax, [ebp + 4]
push eax
lea eax, [ebp + 0x48]
push eax
call fcn.0045256b
xor esi, esi
add esp, 0xc
cmp dword [ebp + 0x60], esi
jne 0x453390
mov dword [ebp + 0x60], 0x4a75aa
jmp 0x4539b5
cmp eax, 1
jge 0x4533c6
cmp byte [ebp + 0x4f], 0
jne 0x4533e1
cmp byte [ebp + 0x1b], 0
je 0x4533b0
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cdq
mov dword [ebp + 8], edx
jmp 0x4533e4
cmp byte [ebp + 0xf], 0
jg 0x4533e1
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
shl eax, 1
mov dword [ebp + 8], esi
jmp 0x4533e4
cmp byte [ebp + 0x4f], 0
je 0x4533e1
cmp dword [ebp + 8], ebx
jl 0x4533e1
jg 0x4533da
mov eax, dword [ebp + 4]
cmp eax, edi
jbe 0x4533e4
mov eax, edi
mov dword [ebp + 8], ebx
jmp 0x4533e4
mov eax, dword [ebp + 4]
cmp dword [ebp + 8], esi
jl 0x453ced
jg 0x4533f7
cmp eax, esi
jb 0x453ced
mov esi, eax
mov eax, dword [ebp + 0x30]
and ax, 0x81
xor ebx, ebx
cmp al, 0x81
jne 0x453ac4
mov ecx, dword [ebp - 8]
mov edi, dword [ebp + 0x60]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x44]
call fcn.0040f3c5
test eax, eax
je 0x453d16
test byte [eax + 0x17], 0xc0
je 0x453d2a
and dword [eax + 4], ebx
jmp 0x453d2a
xor edi, edi
fldz
cmp dword [ebp + 0x30], edi
fstp qword [ebp - 0x40]
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x80], edi
je 0x4539bc
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x34], edi
xor ecx, ecx
jmp 0x453473
cmp cx, 0x2c
je 0x453480
cmp cx, 0x3b
je 0x453480
cmp cx, 0x3a
je 0x453480
cmp cx, 0x7c
je 0x453480
inc eax
inc eax
mov cx, word [eax]
cmp cx, di
mov dword [ebp - 0x1c], eax
jne 0x453459
jmp 0x45348f
mov cx, word [eax]
mov word [eax], di
inc eax
inc eax
mov word [ebp + 0x34], cx
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x4c]
push edi
push 0x2c
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.00433707
mov ecx, dword [ebp - 8]
push edi
push 0xffffffffffffffff
push edi
push dword [ebp + 0x44]
call fcn.0040f3c5
cmp eax, edi
je 0x453d5f
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 0x45351e
push dword [ebp - 0x50]
mov dword [ebp + 8], ebx
push esi
push dword [ebp - 0x4c]
call fcn.00440266
mov eax, dword [ebp + 0x40]
add esp, 0xc
cmp word [eax], bx
je 0x453d8b
push dword [edi]
push str.0x_p
lea eax, [ebp - 0x128]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0x128]
add esp, 0xc
push eax
mov dword [ebp + 0x60], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
shl esi, 1
jmp 0x4539b5
cmp ecx, 4
jne 0x45363a
mov ecx, dword [ebp + 0x24]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x2c]
push dword [ebp + 0x40]
call fcn.0040f3c5
cmp word [ebp + 0x34], 0
mov edi, eax
jne 0x453ddb
test edi, edi
je 0x453ac4
test byte [edi + 0x17], 0xc0
je 0x453ac4
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0x38], eax
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x54], ebx
mov esi, dword [ebp - 0x84]
add esi, dword [ebp + 0x50]
mov eax, dword [ebp - 0x80]
adc eax, dword [ebp + 0x54]
mov ecx, dword [edi + 0x10]
xor edx, edx
test byte [edi + 0x17], 0xc0
mov dword [ebp - 0x30], eax
mov dword [ebp - 4], ecx
je 0x453596
cmp eax, edx
jl 0x453596
jg 0x453cb3
cmp esi, ecx
ja 0x453cb3
mov ebx, dword [ebp - 0x30]
mov eax, esi
sub eax, ecx
sbb ebx, edx
mov dword [ebp - 0x98], ebx
js 0x4535f9
jg 0x4535ad
test eax, eax
jbe 0x4535f9
mov ecx, dword [ebp - 0x30]
push 0
mov eax, esi
add eax, 1
push 2
adc ecx, 0
push ecx
push eax
call fcn.00492e60
lea ebx, [eax + 2]
lea ecx, [edi + 4]
push ebx
mov dword [ebp - 0x98], edx
call fcn.0043ddc3
lea eax, [ebx + ebx]
sub eax, dword [ebp - 4]
push eax
mov eax, dword [edi + 4]
add eax, dword [ebp - 4]
push 0
push eax
call fcn.00492e00
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 4]
add esp, 0xc
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], eax
cmp dword [ebp + 0x30], 4
jne 0x453620
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 0x453620
jg 0x45361a
cmp dword [ebp + 0x50], ecx
jbe 0x453620
mov dword [ebp + 0x50], ecx
mov dword [ebp + 0x54], eax
push dword [ebp + 0x50]
mov eax, dword [edi + 4]
add eax, dword [ebp - 0x84]
push dword [ebp - 0x38]
push eax
call fcn.004128b6
jmp 0x453eea
cmp ecx, 0x100
jne 0x45389b
mov ecx, dword [ebp + 0x24]
xor edi, edi
push edi
push 0xffffffffffffffff
push dword [ebp - 0x2c]
push dword [ebp + 0x40]
call fcn.0040f3c5
or dword [ebp + 0x14], 0xffffffff
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x6c], edi
mov edi, dword [eax + 0x10]
xor eax, eax
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0xac], eax
mov dword [ebp + 0x48], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x1c]
push eax
mov dword [ebp + 0x10], 0xfffffff8
call fcn.0046fb37
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0046fb37
and dword [ebp + 0x34], 0
add esp, 0x10
cmp dword [ebp + 0x14], 0
jg 0x4536c6
jl 0x4536b9
cmp dword [ebp + 0x10], 0
jae 0x4536c6
mov dword [ebp + 0x34], 1
mov dword [ebp + 0x10], esi
mov dword [ebp + 0x14], ebx
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0046fb37
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax]
pop ecx
pop ecx
mov ecx, eax
or ecx, 0x20
cmp cx, 0x73
je 0x4536ec
cmp cx, 0x69
jne 0x453701
mov ecx, eax
xor ecx, 0x20
test ax, ax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0xac], ecx
jne 0x45370b
jmp 0x453707
mov ecx, dword [ebp - 0xac]
and dword [ebp + 0x34], 0
xor eax, eax
cmp dword [ebp - 0x6c], eax
jl 0x453cb3
jg 0x453721
cmp dword [ebp - 0x70], eax
jb 0x453cb3
cmp dword [ebp - 0x20], eax
jl 0x453cb3
jg 0x453735
cmp dword [ebp - 0x24], eax
jb 0x453cb3
cmp dword [ebp + 0x14], eax
jl 0x453cb3
jg 0x453749
cmp dword [ebp + 0x10], eax
jbe 0x453cb3
cmp dword [ebp - 0x20], ebx
jg 0x453cb3
jl 0x45375d
cmp dword [ebp - 0x24], esi
ja 0x453cb3
mov eax, dword [ebp - 0xe4]
cmp dword [ebp - 0x6c], eax
jg 0x453cb3
jl 0x453777
cmp dword [ebp - 0x70], edi
ja 0x453cb3
cmp dword [ebp + 0x34], 0
jne 0x4537c3
sub esi, dword [ebp - 0x24]
sbb ebx, dword [ebp - 0x20]
sub edi, dword [ebp - 0x70]
sbb eax, dword [ebp - 0x6c]
cmp eax, ebx
jl 0x453797
jg 0x453793
cmp edi, esi
jbe 0x453797
mov edi, esi
mov eax, ebx
cmp dword [ebp + 0x14], eax
jl 0x4537a9
jg 0x4537a3
cmp dword [ebp + 0x10], edi
jbe 0x4537a9
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x14], eax
test cl, 0x20
je 0x4537c3
push 0
push 2
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call fcn.00492e60
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], edx
cmp dword [ebp + 0x14], 0
jl 0x45388c
jg 0x4537d9
cmp dword [ebp + 0x10], 0
jbe 0x45388c
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp + 0x60]
mov eax, dword [eax + 4]
add eax, dword [ebp - 0x70]
add ecx, edx
mov edx, dword [ebp - 0x38]
cmp dx, 0x73
jne 0x453813
cmp dword [ebp + 0x34], 0
je 0x453806
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
jmp 0x453889
push dword [ebp + 0x10]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNA]
jmp 0x453889
cmp dx, 0x53
jne 0x453836
cmp dword [ebp + 0x34], 0
je 0x453829
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
jmp 0x453889
push dword [ebp + 0x10]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
jmp 0x453889
cmp dx, 0x69
jne 0x453859
cmp dword [ebp + 0x34], 0
je 0x45384c
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x453889
push dword [ebp + 0x10]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNIA]
jmp 0x453889
cmp dx, 0x49
jne 0x45387c
cmp dword [ebp + 0x34], 0
je 0x45386f
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
jmp 0x453889
push dword [ebp + 0x10]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
jmp 0x453889
push dword [ebp + 0x10]
push ecx
push eax
call fcn.00437f1d
add esp, 0xc
mov dword [ebp + 0x48], eax
movsx eax, word [ebp + 0x48]
push eax
push 0x4a7164
jmp 0x4534f5
cmp ecx, 1
jne 0x453943
xor ebx, ebx
push ebx
push 5
push ebx
shr esi, 1
push esi
call fcn.00492f10
mov edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp - 0x98], edx
call fcn.0043dc99
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 - 0x30], edx
jg 0x4538ef
jl 0x4538e8
cmp esi, ebx
jae 0x4538ef
xor esi, esi
mov dword [ebp - 0x30], ebx
jmp 0x453904
mov eax, dword [ebp - 0x98]
cmp edx, eax
jl 0x453904
jg 0x4538ff
cmp esi, edi
jbe 0x453904
mov esi, edi
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x58]
mov ecx, dword [ebp - 0x30]
mov byte [esi + eax], 0
push ebx
mov eax, esi
add eax, 1
push 2
adc ecx, ebx
push ecx
push eax
call fcn.00492e60
mov edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.0043ddc3
mov eax, dword [ebp + 0x58]
mov word [eax + edi*2], bx
mov ebx, dword [ebp - 0x30]
mov byte [ebp + 0x73], 1
mov dword [ebp + 0x60], eax
jmp 0x453ac4
cmp ecx, 2
jne 0x453998
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp - 0x3c], ebx
call fcn.0043ddc3
push esi
push dword [ebp + 0x58]
xor edi, edi
push esi
push dword [ebp + 0x60]
push edi
push edi
call dword [0x4c0b9c]
mov esi, eax
cmp esi, edi
jge 0x453971
xor esi, esi
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.0043ddc3
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 0x453ac4
cmp ecx, 0x20
jne 0x4542ca
mov ecx, dword [edi]
mov dword [ebp + 0x60], ecx
mov esi, dword [eax]
mov dword [ebp - 0x48], edi
mov dword [ebp - 0xa0], eax
mov byte [ebp + 0x73], 1
xor ebx, ebx
jmp 0x453ac4
cmp byte [ebp + 0x67], 0
je 0x4539e8
mov eax, dword [ebp + 0x60]
cmp word [eax], di
je 0x4539e8
xor ecx, ecx
mov cl, byte [ebp - 0x7c]
or cl, byte [ebp + 0x67]
push ecx
push eax
lea ecx, [ebp + 0x44]
call fcn.004464ff
mov ecx, dword [ebp - 8]
push eax
call fcn.00452471
mov dword [ebp + 0x60], eax
mov eax, dword [ebp - 0x78]
dec eax
cmp eax, edi
jl 0x453a10
inc eax
mov dword [ebp + 0x70], eax
mov ecx, dword [ebp - 8]
push edi
push edi
lea eax, [ebp + 0x3c]
push eax
push dword [ebp + 0x60]
call fcn.0044bafc
dec dword [ebp + 0x70]
mov eax, dword [ebp + 0x3c]
mov dword [ebp + 0x60], eax
jne 0x4539f4
mov eax, dword [ebp + 0x60]
cmp word [eax], di
je 0x453a35
lea eax, [ebp + 4]
push eax
push dword [ebp + 0x78]
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.00451bbd
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 4]
add esp, 0x10
mov ecx, dword [ebp + 0x60]
cmp ecx, dword [ebp + 0x58]
sete byte [ebp + 0x73]
xor eax, eax
cmp eax, edi
jg 0x453ef2
jl 0x453a54
cmp dword [ebp + 0x1c], edi
ja 0x453ef2
cmp dword [ebp + 0x54], edi
jg 0x4540c8
jl 0x453a68
cmp dword [ebp + 0x50], edi
ja 0x4540c8
cmp byte [ebp + 0x4e], 0
je 0x453ab4
cmp ebx, edi
jl 0x453f21
jg 0x453a80
cmp esi, edi
jbe 0x453f21
push 0x4c1b94
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp + 0x24]
push edi
push 0xffffffffffffffff
push dword [ebp - 0x2c]
push dword [ebp + 0x40]
call fcn.0040f3c5
cmp eax, edi
mov dword [ebp - 0x3c], eax
jne 0x4541b4
push 0x4c1b94
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x453ac4
cmp byte [ebp + 0x3b], 0
je 0x453ac4
cmp byte [ebp + 0x2b], 0
je 0x454290
xor eax, eax
cmp dword [ebp - 0x28], eax
mov dword [ebp - 0x38], eax
je 0x453afc
cmp byte [ebp + 0x7c], al
jne 0x453afc
mov ecx, dword [ebp + 0x24]
test byte [ecx + 9], 0xf
jne 0x453afc
cmp byte [ebp + 0x73], al
jne 0x453afc
cmp dword [ebp - 0xc], eax
jge 0x453afc
cmp byte [ebp + 0x3b], al
jne 0x453afc
push dword [ebp + 0x60]
push dword [ebp + 0x40]
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
jmp 0x453c4c
mov ecx, dword [ebp + 0x24]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x2c]
push dword [ebp + 0x40]
call fcn.0040f3c5
mov edi, eax
test edi, edi
mov dword [ebp - 0x3c], edi
jne 0x453b77
cmp dword [ebp - 0xc], eax
jge 0x453b6b
cmp byte [ebp + 0x73], al
je 0x453b2b
xor ecx, ecx
mov dword [ebp - 0xac], ecx
jmp 0x453b33
mov ecx, esi
mov dword [ebp - 0xac], ebx
cmp byte [ebp + 0x73], 0
mov eax, 0x4a69d4
jne 0x453b41
mov eax, dword [ebp + 0x60]
push ecx
mov ecx, dword [ebp + 0x24]
push 0xffffffffffffffff
push eax
push dword [ebp + 0x40]
call fcn.004130ae
cmp dword [ebp - 0x5c], 0
mov edi, eax
je 0x453b67
test edi, edi
je 0x453b6b
push dword [ebp - 0x5c]
lea ecx, [edi + 8]
call fcn.0044655b
test edi, edi
jne 0x453b77
mov dword [ebp - 0x38], 1
jmp 0x453c4c
xor edx, edx
cmp dword [ebp - 0xc], edx
jl 0x453bd5
mov ecx, dword [edi + 0x10]
mov eax, ecx
sub eax, dword [ebp - 4]
cmp dword [ebp - 0x14], edx
jb 0x453b98
ja 0x453b92
cmp dword [ebp - 0x18], eax
jbe 0x453b98
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
xor eax, eax
cmp dword [ebp], eax
ja 0x453c4c
jb 0x453bae
cmp dword [ebp - 4], ecx
jae 0x453c4c
cmp dword [ebp - 0x14], 0
ja 0x453bbe
cmp dword [ebp - 0x18], 0
jbe 0x453c4c
push dword [ebp - 0x18]
mov eax, dword [edi + 4]
add eax, dword [ebp - 4]
push dword [ebp - 0xc]
push eax
call fcn.00492e00
add esp, 0xc
jmp 0x453c4c
cmp byte [ebp + 0x3b], 0
jne 0x453c4c
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
je 0x453c11
mov al, byte [ecx + 0x17]
and al, 0xc0
cmp al, 0xc0
jne 0x453c09
cmp byte [ebp + 0x73], 0
je 0x453bf9
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.004385bc
add esp, 0x10
jmp 0x453c4c
test al, al
je 0x453c11
and dword [ecx + 4], 0
cmp byte [ebp + 0x73], 0
je 0x453c3d
mov ecx, dword [edi + 0x10]
mov eax, dword [ebp - 0xa0]
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 0x453c4c
test ecx, ecx
je 0x453c4c
push esi
push dword [ebp + 0x60]
mov ecx, edi
call fcn.00402ce6
lea ecx, [ebp + 0x58]
call fcn.00437e1a
lea ecx, [ebp + 0x44]
call fcn.00437e1a
lea ecx, [ebp + 0x3c]
call fcn.00437e1a
cmp dword [ebp - 0x54], 0
jle 0x454303
mov esi, dword [ebp - 0xa8]
push dword [ebp - 0x44]
mov eax, dword [ebp - 0x90]
push dword [ebp - 0x44]
dec dword [ebp - 0x54]
push dword [ebp - 0xa4]
mov dword [ebp + 0x40], eax
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
push dword [ebp - 0x58]
mov dword [ebp + 0x60], esi
push dword [ebp - 0x94]
push esi
call fcn.0043adf4
add esp, 0x1c
inc dword [ebp - 0x44]
inc dword [ebp - 0x58]
jmp 0x45302a
lea ecx, [ebp + 0x58]
call fcn.00437e1a
lea ecx, [ebp + 0x44]
call fcn.00437e1a
lea ecx, [ebp + 0x3c]
call fcn.00437e1a
lea ecx, [ebp + 0x5c]
call fcn.00437e1a
mov eax, 0x4c1b94
test eax, eax
je 0x453ce3
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x45431e
lea ecx, [ebp + 0x58]
call fcn.00437e1a
lea ecx, [ebp + 0x44]
call fcn.00437e1a
lea ecx, [ebp + 0x3c]
call fcn.00437e1a
lea ecx, [ebp + 0x5c]
call fcn.00437e1a
mov eax, 0x4c1b94
cmp eax, esi
jmp 0x453cda
mov ecx, dword [ebp + 0x24]
push 0
push 0xffffffffffffffff
push 0x4a69d4
push dword [ebp + 0x40]
call fcn.004130ae
xor ecx, ecx
cmp dword [ebp + 0x30], 0x83
mov edx, 0xc0000000
je 0x453d3f
mov edx, 0x80000000
or ecx, esi
or edx, ebx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
mov ecx, dword [eax + 4]
mov dword [ebp + 0x7c], ecx
lea ecx, [ebp + 0x7c]
mov dword [eax + 4], edi
call fcn.00437e1a
jmp 0x4542ca
lea ecx, [ebp + 0x58]
call fcn.00437e1a
lea ecx, [ebp + 0x44]
call fcn.00437e1a
lea ecx, [ebp + 0x3c]
call fcn.00437e1a
lea ecx, [ebp + 0x5c]
call fcn.00437e1a
mov eax, 0x4c1b94
cmp eax, edi
jmp 0x453cda
mov eax, dword [ebp - 0x50]
mov si, word [eax]
neg si
lea ecx, [ebp + 0x58]
sbb esi, esi
and esi, 0x7ff8ffa9
add esi, 0x80070057
call fcn.00437e1a
lea ecx, [ebp + 0x44]
call fcn.00437e1a
lea ecx, [ebp + 0x3c]
call fcn.00437e1a
lea ecx, [ebp + 0x5c]
call fcn.00437e1a
mov eax, 0x4c1b94
test eax, eax
je 0x45431e
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x45431e
mov ecx, dword [edi + 0x10]
xor eax, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp + 0x20], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x1c]
push eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ebx
mov dword [ebp + 0x1c], ecx
call fcn.0046fb37
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0046fb37
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0046fb37
add esp, 0x18
cmp dword [ebp - 0x20], 0
jl 0x453cb3
jg 0x453e38
cmp dword [ebp - 0x24], 0
jb 0x453cb3
cmp dword [ebp - 0x14], 0
jl 0x453cb3
jg 0x453e4e
cmp dword [ebp - 0x18], 0
jbe 0x453cb3
cmp dword [ebp - 0x20], ebx
jg 0x453cb3
jl 0x453e62
cmp dword [ebp - 0x24], esi
ja 0x453cb3
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp + 0x20]
jg 0x453cb3
mov ecx, dword [ebp - 0x34]
jl 0x453e7c
cmp ecx, dword [ebp + 0x1c]
ja 0x453cb3
test eax, eax
jg 0x453e8a
jl 0x453e86
test ecx, ecx
jae 0x453e8a
xor ecx, ecx
xor eax, eax
sub esi, dword [ebp - 0x24]
sbb ebx, dword [ebp - 0x20]
sub dword [ebp + 0x1c], ecx
sbb dword [ebp + 0x20], eax
mov eax, dword [ebp - 0x14]
cmp eax, ebx
jl 0x453ea9
jg 0x453ea4
cmp dword [ebp - 0x18], esi
jbe 0x453ea9
mov dword [ebp - 0x18], esi
mov eax, ebx
cmp eax, dword [ebp + 0x20]
jl 0x453ec0
jg 0x453eb8
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp + 0x1c]
jbe 0x453ec3
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
jmp 0x453ec3
mov edx, dword [ebp - 0x18]
test eax, eax
jl 0x4542ca
jg 0x453ed5
test edx, edx
jbe 0x4542ca
mov eax, dword [ebp + 0x60]
push edx
mov edx, dword [ebp - 0x24]
add edx, eax
mov eax, dword [edi + 4]
push edx
add eax, ecx
push eax
call fcn.0041286c
add esp, 0xc
jmp 0x4542ca
mov dword [ebp - 0x10], ecx
lea ecx, [ebp + 0x7c]
call fcn.0043dd7e
mov ecx, dword [ebp - 0x4c]
push 0x2c
push 0x3a
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.00433707
mov eax, dword [ebp + 0x7c]
cmp word [eax], di
jne 0x453f4d
lea ecx, [ebp + 0x7c]
call fcn.00437e1a
lea ecx, [ebp + 0x58]
call fcn.00437e1a
lea ecx, [ebp + 0x44]
call fcn.00437e1a
lea ecx, [ebp + 0x3c]
call fcn.00437e1a
lea ecx, [ebp + 0x5c]
call fcn.00437e1a
mov eax, 0x4c1b94
cmp eax, edi
jmp 0x4542f1
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x10]
push eax
mov dword [ebp - 4], edi
mov dword [ebp], edi
call fcn.00449426
mov ebx, dword [ebp - 4]
add ebx, dword [ebp + 0x50]
mov esi, dword [ebp]
adc esi, dword [ebp + 0x54]
pop ecx
pop ecx
mov ecx, dword [ebp + 0x24]
push edi
push 0xffffffffffffffff
push dword [ebp - 0x2c]
mov word [ebp - 0x1c8], di
push dword [ebp + 0x40]
call fcn.0040f3c5
xor ecx, ecx
cmp eax, edi
mov dword [ebp + 0x70], 1
je 0x453f96
mov ecx, dword [eax + 0x10]
cmp edi, esi
jl 0x454076
jg 0x453fa8
cmp ecx, ebx
jb 0x454076
mov eax, dword [eax + 4]
add eax, dword [ebp - 4]
push dword [ebp + 0x50]
mov dword [ebp + 0x70], edi
push eax
lea eax, [ebp - 0xe0]
push eax
call fcn.004128b6
add esp, 0xc
cmp dword [ebp - 0x64], edi
je 0x453fec
fld dword [ebp - 0xe0]
push 0x4aef58
push ecx
lea eax, [ebp - 0x1c8]
fstp dword [esp]
push eax
call fcn.00487916
add esp, 0xc
jmp 0x454076
cmp dword [ebp - 0x68], edi
je 0x45400f
fld qword [ebp - 0xe0]
push 0x4aef50
push ecx
push ecx
lea eax, [ebp - 0x1c8]
fstp qword [esp]
push eax
call fcn.0048793f
jmp 0x454073
cmp dword [ebp - 0x60], edi
je 0x454032
fld qword [ebp - 0xe0]
push 0x4aef50
push ecx
push ecx
lea eax, [ebp - 0x1c8]
fstp qword [esp]
push eax
call fcn.0048793f
jmp 0x454073
cmp dword [ebp + 0x1c], 0x64
jne 0x454058
xor eax, eax
cmp eax, edi
jne 0x454058
push dword [ebp - 0xe0]
lea eax, [ebp - 0x1c8]
push str.0x_p
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
jmp 0x453fe4
push dword [ebp + 0x2c]
lea eax, [ebp - 0x1c8]
push dword [ebp - 0xdc]
push dword [ebp - 0xe0]
push eax
call fcn.004878ba
add esp, 0x10
mov ecx, dword [ebp + 0x24]
lea eax, [ebp - 0x1c8]
push eax
push dword [ebp + 0x7c]
call fcn.0043d658
lea ecx, [ebp + 0x7c]
call fcn.00437e1a
lea ecx, [ebp + 0x58]
call fcn.00437e1a
lea ecx, [ebp + 0x44]
call fcn.00437e1a
lea ecx, [ebp + 0x3c]
call fcn.00437e1a
lea ecx, [ebp + 0x5c]
call fcn.00437e1a
mov eax, 0x4c1b94
cmp eax, edi
je 0x4540c0
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp + 0x70]
jmp 0x45431e
cmp dword [ebp - 0x64], edi
mov dword [ebp + 0x7c], ecx
je 0x4540e8
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.00440b28
fld qword [ebp - 0x40]
fstp dword [ebp - 0xe0]
jmp 0x45411a
cmp dword [ebp - 0x68], edi
jne 0x4540f2
cmp dword [ebp - 0x60], edi
je 0x45410a
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.00440b28
fld qword [ebp - 0x40]
fstp qword [ebp - 0xe0]
jmp 0x45411a
lea eax, [ebp - 0xe0]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.00449426
mov eax, dword [ebp + 0x7c]
cmp word [eax], di
pop ecx
pop ecx
je 0x454143
add dword [ebp + 0x7c], 2
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp + 0x7c]
push eax
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x80], edi
call fcn.00449426
pop ecx
pop ecx
mov ecx, dword [ebp + 0x24]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x2c]
push dword [ebp + 0x40]
call fcn.0040f3c5
mov edi, eax
test edi, edi
jne 0x453564
mov ecx, dword [ebp + 0x24]
push eax
push 0xffffffffffffffff
push 0x4a69d4
push dword [ebp + 0x40]
call fcn.004130ae
mov edi, eax
test edi, edi
jne 0x453564
lea ecx, [ebp + 0x58]
call fcn.00437e1a
lea ecx, [ebp + 0x44]
call fcn.00437e1a
lea ecx, [ebp + 0x3c]
call fcn.00437e1a
lea ecx, [ebp + 0x5c]
call fcn.00437e1a
mov eax, 0x4c1b94
test eax, eax
je 0x4541ac
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor esi, esi
inc esi
jmp 0x45431e
mov ebx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
lea edi, [eax + 4]
mov eax, dword [edi]
xor ecx, ecx
test edx, edx
mov dword [ebp - 4], ebx
mov dword [ebp + 0x70], eax
jg 0x45423a
jl 0x4541d1
test ebx, ebx
jae 0x45423a
and dword [edi], 0
mov byte [ebp + 0x7f], 1
mov ebx, dword [ebp - 4]
push 0
add ebx, esi
adc ecx, dword [ebp + 8]
push 2
push ecx
push ebx
mov dword [ebp - 0x98], ecx
call fcn.00492e60
mov dword [ebp - 0x34], eax
add eax, 2
push eax
mov ecx, edi
mov dword [ebp - 0x30], edx
call fcn.0043ddc3
mov ecx, dword [edi]
mov eax, dword [ebp - 0x34]
add eax, eax
and word [eax + ecx + 2], 0
mov ecx, dword [edi]
and word [eax + ecx], 0
cmp byte [ebp + 0x4e], 1
mov edi, dword [edi]
jne 0x454240
cmp byte [ebp + 0x7f], 0
je 0x454233
push dword [ebp - 4]
push dword [ebp + 0x70]
push edi
call fcn.004128b6
add esp, 0xc
mov eax, dword [ebp - 4]
add edi, eax
jmp 0x454267
mov byte [ebp + 0x7f], 0
jmp 0x4541d8
cmp byte [ebp + 0x4e], 2
jne 0x454274
cmp byte [ebp + 0x7f], 0
push dword [ebp - 4]
lea eax, [esi + edi]
je 0x45425d
push dword [ebp + 0x70]
push eax
call fcn.004128b6
jmp 0x454264
push edi
push eax
call fcn.0041286c
add esp, 0xc
push esi
push dword [ebp + 0x60]
push edi
call fcn.004128b6
add esp, 0xc
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x98]
push 0x4c1b94
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4542ca
mov ecx, dword [ebp + 0x24]
xor edi, edi
push edi
push 0xffffffffffffffff
push dword [ebp - 0x2c]
push dword [ebp + 0x40]
call fcn.0040f3c5
mov esi, eax
cmp esi, edi
je 0x4542ca
test byte [esi + 0x17], 0xc0
je 0x4542b7
mov eax, dword [esi + 4]
mov word [eax], di
jmp 0x4542ca
push 0x4a69d4
lea ecx, [esi + 4]
call fcn.004464ff
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
lea ecx, [ebp + 0x58]
call fcn.00437e1a
lea ecx, [ebp + 0x44]
call fcn.00437e1a
lea ecx, [ebp + 0x3c]
call fcn.00437e1a
lea ecx, [ebp + 0x5c]
call fcn.00437e1a
mov eax, 0x4c1b94
test eax, eax
je 0x452f48
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x452f48
lea ecx, [ebp + 0x5c]
call fcn.00437e1a
mov eax, 0x4c1b94
test eax, eax
je 0x45431b
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp - 0x38]
lea ecx, [ebp - 0x50]
call fcn.00437e1a
lea ecx, [ebp - 0x74]
call fcn.00437e1a
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10