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

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x230
or dword [ebp - 0x50], 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 - 0x54], ecx
mov dword [ebp - 0x64], 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 - 0x80], 1
mov dword [ebp - 8], edi
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x84], 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 - 0x4c], edi
mov dword [ebp + 0x2c], str._I64d
je 0x4524b1
cmp word [esi], di
je 0x4524b1
xor ebx, ebx
mov bx, word [esi]
mov eax, ebx
call fcn.004820ac
test al, al
jne 0x45249c
cmp bx, 0x2e
je 0x452491
cmp bx, 0x24
je 0x452491
cmp bx, 0x25
je 0x452491
cmp bx, 0x2a
jne 0x451cd2
or byte [ebp + 0x67], 4
jmp 0x452491
push 0x7e
pop ecx
cmp bx, cx
jne 0x451d23
lea eax, [esi + 2]
cmp word [eax], cx
jne 0x451ced
or byte [ebp + 0x67], 2
mov esi, eax
jmp 0x452491
cmp bx, cx
jne 0x451d23
lea eax, [esi + 2]
cmp word [eax], 0x2e
jne 0x451d01
or byte [ebp + 0x67], 8
jmp 0x451ce6
cmp bx, cx
jne 0x451d23
lea eax, [esi + 2]
cmp word [eax], 0x2a
jne 0x451d15
or byte [ebp + 0x67], 0xa
jmp 0x451ce6
cmp bx, cx
jne 0x451d23
or byte [ebp + 0x67], 1
jmp 0x452491
push 4
push esi
push str._std
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x451d46
add esi, 6
mov dword [ebp - 0x80], 0x80
jmp 0x452491
push 4
push esi
push str._env
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x451d69
add esi, 6
mov dword [ebp - 0x80], 0x40
jmp 0x452491
push 4
push esi
push str._raw
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x451d8c
add esi, 6
mov dword [ebp - 8], 0x40
jmp 0x452491
cmp bx, 0x3c
jne 0x451d9b
mov byte [ebp + 0x4e], 1
jmp 0x452491
cmp bx, 0x3e
jne 0x451daa
mov byte [ebp + 0x4e], 2
jmp 0x452491
push 4
pop ebx
push ebx
push esi
push str._def
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x451dcc
add esi, 6
add byte [ebp + 0x7c], 2
jmp 0x452491
push ebx
push esi
push str._tom
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x451dee
add esi, 6
mov dword [ebp + 0x30], 1
jmp 0x452491
push ebx
push esi
push str._tow
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x451e10
add esi, 6
mov dword [ebp + 0x30], 2
jmp 0x452491
push 5
push esi
push str._copy
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x451e2f
add esi, 8
mov dword [ebp + 0x30], ebx
jmp 0x452491
push ebx
push esi
push str._cmp
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x451e51
add esi, 8
mov dword [ebp + 0x30], pe_nt_image_headers32
jmp 0x452491
push 5
push esi
push str._addr
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x451e72
push 8
pop eax
add esi, eax
mov dword [ebp + 0x30], eax
jmp 0x452491
push 0xb
push esi
push str._mkfixdummy
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x451e95
add esi, 0x14
mov dword [ebp + 0x30], 0x83
jmp 0x452491
push 8
push esi
push str._mkdummy
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x451eb8
add esi, 0xe
mov dword [ebp + 0x30], 0x81
jmp 0x452491
push 5
push esi
push str._make
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x451edb
add esi, 8
mov dword [ebp + 0x30], 0x80
jmp 0x452491
push 5
push esi
push str._swap
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x451efe
add esi, 8
mov dword [ebp + 0x30], 0x20
jmp 0x452491
push 5
push esi
push str._char
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x451f24
mov dword [ebp + 0x50], 1
mov dword [ebp + 0x54], edi
add esi, 8
jmp 0x452491
push 6
push esi
push str._wchar
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x451f4a
mov dword [ebp + 0x50], 2
mov dword [ebp + 0x54], edi
add esi, 0xa
jmp 0x452491
push 6
push esi
push str._short
call fcn.00438aa1
add esp, 0xc
test al, al
jne 0x451f38
push ebx
push esi
push str._ptr
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x451f7f
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], edi
add esi, 6
jmp 0x452491
push 6
push esi
push str._float
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x451f9b
mov dword [ebp - 0x58], ebx
mov dword [ebp + 0x50], ebx
jmp 0x451f3f
push 7
push esi
push str._double
call fcn.00438aa1
add esp, 0xc
test al, al
push 8
je 0x451fc3
pop eax
mov dword [ebp - 0x60], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], edi
add esi, 0xc
jmp 0x452491
push esi
push str._ldouble
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x451fe9
push 8
pop eax
mov dword [ebp - 0x68], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], edi
add esi, 0xe
jmp 0x452491
push 6
push esi
push str._int64
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x45200f
add esi, 0xa
mov dword [ebp + 0x50], 8
mov dword [ebp + 0x54], edi
jmp 0x452491
push 9
push esi
push str._longlong
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x452028
add esi, 0x10
jmp 0x452000
push 5
push esi
push str._long
call fcn.00438aa1
add esp, 0xc
test al, al
jne 0x452050
push 5
push esi
push str._long
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x452058
mov dword [ebp + 0x50], ebx
jmp 0x451f19
push 5
push esi
push str._zero
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x452077
add esi, 8
mov dword [ebp - 0xc], edi
jmp 0x452491
push 7
push esi
push str._intsys
call fcn.00438aa1
add esp, 0xc
test al, al
jne 0x4522b2
push ebx
push esi
push str._int
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x4520c1
mov ax, word [esi + 8]
and ax, 0xffdf
cmp ax, 0x41
jb 0x4520b6
cmp ax, 0x5a
jbe 0x4520c1
add esi, 6
mov dword [ebp + 0x50], ebx
jmp 0x452007
push 5
push esi
push 0x4ac7a4
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x452104
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 0x452341
mov dword [ebp + 0x2c], str.0x_02I64X
jmp 0x45233f
push 6
push esi
push 0x4ac778
call fcn.00438aa1
add esp, 0xc
test al, al
jne 0x45212c
push 6
push esi
push 0x4ac770
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x45215b
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 0x452341
mov dword [ebp + 0x2c], str.0x_04I64X
jmp 0x45233f
push ebx
push esi
push 0x4ac754
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x452197
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 0x452341
jmp 0x45233f
push 6
push esi
push 0x4ac74c
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x4521bf
add esi, 0xa
mov dword [ebp - 0x58], ebx
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x1c], ebx
jmp 0x452491
push 7
push esi
push 0x4ac744
call fcn.00438aa1
add esp, 0xc
test al, al
push 8
je 0x4521ea
pop eax
add esi, 0xc
mov dword [ebp - 0x60], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x1c], eax
jmp 0x452491
push esi
push 0x4ac738
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x452207
push 8
pop eax
add esi, 0xe
mov dword [ebp - 0x68], eax
jmp 0x4521dc
push 6
push esi
push 0x4ac730
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x452220
add esi, 0xa
jmp 0x452237
push 9
push esi
push 0x4ac724
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x45225c
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 0x452341
mov dword [ebp + 0x2c], str.0x_016I64X
jmp 0x45233f
push 5
push esi
push 0x4ac704
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x45227f
add esi, 8
mov dword [ebp + 0x2c], str.0x_I64X
jmp 0x452326
push 6
push esi
push str._intpe
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x45229b
add esi, 0xa
jmp 0x452326
push 7
push esi
push 0x4ac6f4
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x4522fc
mov dword [ebp + 0x1c], ebx
mov cl, byte [0x4bdbe5]
add esi, 0xc
cmp cl, 3
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], edi
jne 0x4522d0
mov dword [ebp + 0x50], 8
mov dword [ebp + 0x54], edi
lea eax, [esi + 2]
cmp word [eax], 0x30
jne 0x452491
cmp cl, 3
mov esi, eax
je 0x4522f0
mov dword [ebp + 0x2c], str.0x_08I64X
jmp 0x452491
mov dword [ebp + 0x2c], str.0x_016I64X
jmp 0x452491
push ebx
push esi
push 0x4ac6d8
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x452358
mov ax, word [esi + 8]
and ax, 0xffdf
cmp ax, 0x41
jb 0x452323
cmp ax, 0x5a
jbe 0x452358
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 0x452341
mov dword [ebp + 0x2c], str.0x_08I64X
mov esi, eax
lea eax, [esi + 2]
cmp word [eax], 0x40
jne 0x452491
add dword [ebp + 0x2c], ebx
mov esi, eax
jmp 0x452491
push ebx
push esi
push str._ret
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x45239b
add esi, 8
cmp word [esi], 0x3a
mov dword [ebp - 0x28], 1
mov dword [ebp + 0x5c], esi
jne 0x452383
inc esi
inc esi
mov dword [ebp + 0x5c], esi
mov ax, word [esi]
call fcn.0043cfd3
test al, al
je 0x45248f
lea eax, [ebp - 0x28]
jmp 0x452423
push ebx
push esi
push str._get
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x4523db
add esi, 8
cmp word [esi], 0x3a
mov dword [ebp + 0x34], 1
mov dword [ebp + 0x5c], esi
jne 0x4523c6
inc esi
inc esi
mov dword [ebp + 0x5c], esi
mov ax, word [esi]
call fcn.0043cfd3
test al, al
je 0x45248f
lea eax, [ebp + 0x34]
jmp 0x452423
push 3
push esi
push 0x4ac6c4
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x4523fa
add esi, ebx
mov byte [ebp + 0x1a], 1
jmp 0x452491
push 2
push esi
push 0x4ac6c0
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x452434
add esi, ebx
mov dword [ebp + 0x5c], esi
mov dword [ebp - 0x84], 1
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp + 0x5c]
push eax
call fcn.0044880d
mov esi, dword [ebp + 0x5c]
pop ecx
pop ecx
jmp 0x45248f
push 2
push esi
push 0x4ac6bc
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x452491
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp + 0x5c]
add esi, ebx
push eax
mov dword [ebp + 0x5c], esi
call fcn.00405085
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp + 0x5c]
push eax
call fcn.00405085
mov esi, dword [ebp - 0x44]
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp + 0x5c]
push eax
mov dword [ebp - 0x4c], esi
call fcn.0044880d
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 - 0x50], eax
je 0x452491
dec esi
dec esi
inc esi
inc esi
cmp word [esi], di
jne 0x451c91
cmp dword [ebp - 8], edi
je 0x4524b1
mov eax, dword [ebp + 0x78]
mov dword [ebp + 0x70], eax
lea eax, [ebp + 0x70]
push eax
call fcn.00405061
pop ecx
mov eax, dword [ebp + 0x70]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
push eax
call fcn.004378b6
mov eax, dword [ebp - 0x10]
pop ecx
jmp 0x4524ce
inc byte [ebp + 0x7c]
inc eax
inc eax
mov dword [ebp - 0x10], eax
cmp word [eax], 0x26
je 0x4524c6
lea ecx, [ebp - 0x74]
call fcn.0043d3a5
mov eax, dword [ebp - 0x10]
mov dword [ebp + 0x40], eax
jmp 0x4524ef
cmp cx, 0x3d
je 0x4524f7
inc eax
inc eax
mov dword [ebp - 0x10], eax
mov cx, word [eax]
cmp cx, di
jne 0x4524e4
mov dword [ebp + 0x60], 0x4a39d4
cmp word [eax], 0x3d
mov ecx, eax
mov byte [ebp + 0x3b], 0
je 0x452510
mov byte [ebp + 0x3b], 1
jmp 0x452518
inc eax
inc eax
mov dword [ebp - 0x10], eax
mov dword [ebp + 0x60], eax
mov word [ecx], di
push dword [ebp + 0x40]
call fcn.0040f047
mov eax, dword [ebp + 0x40]
cmp word [eax], 0x7e
pop ecx
jne 0x452568
inc eax
inc eax
mov edx, eax
mov dword [ebp - 0x64], edx
jmp 0x45253e
cmp cx, 0x7e
je 0x452549
inc eax
inc eax
mov dword [ebp + 0x40], eax
mov cx, word [eax]
cmp cx, di
jne 0x452536
cmp word [eax], 0x7e
je 0x452559
mov edi, 0x80070057
jmp 0x45391b
mov word [eax], di
add dword [ebp + 0x40], 2
cmp word [edx], di
jne 0x452568
mov dword [ebp - 0x64], edi
lea ecx, [ebp - 0x5c]
call fcn.0043d3a5
mov esi, dword [ebp - 0x54]
push 0x3b
push 0x2c
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x40]
push eax
mov ecx, esi
call fcn.004330ce
push 0x3b
push 0x2c
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp + 0x40]
push eax
mov ecx, esi
call fcn.004330ce
cmp dword [ebp + 0x30], 8
mov eax, dword [ebp - 0x74]
mov dword [ebp + 0x40], eax
je 0x4525b6
cmp word [eax], di
jne 0x4525b6
mov eax, dword [ebp - 0x5c]
cmp word [eax], di
je 0x453913
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 0x4525f7
dec dword [ebp - 0x28]
js 0x4525ee
mov ecx, dword [ebp - 0x28]
inc ecx
sub dword [ebp - 0x28], ecx
dec ecx
mov eax, dword [eax + 0x24]
jne 0x4525e5
mov dword [ebp + 0x24], eax
cmp byte [ebp + 0x2b], 0
je 0x4525f7
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x34]
cmp eax, edi
jle 0x45260b
dec eax
js 0x45260b
inc eax
dec eax
mov edx, dword [edx + 0x24]
jne 0x452602
mov dword [ebp - 8], edx
cmp byte [ebp + 0x3b], 0
je 0x452618
mov byte [ebp + 0x4e], 0
mov dword [ebp + 0x30], edi
push 0x4beb4c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [ebp - 0x50], edi
mov dword [ebp + 0x5c], edi
mov dword [ebp - 0x90], edi
mov dword [ebp - 0x98], edi
mov dword [ebp - 0xa8], edi
mov dword [ebp - 0x9c], edi
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
jle 0x452691
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.0043d3ea
mov eax, dword [ebp + 0x40]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp + 0x5c]
lea esi, [eax + esi*2 + 0x50]
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x9c], esi
jmp 0x4532d8
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.0043d3a5
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 - 0x94], ecx
mov dword [ebp - 4], eax
mov dword [ebp], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
jl 0x452754
mov byte [ebp + 0x4f], al
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.00405085
test eax, eax
pop ecx
pop ecx
jle 0x45270d
movzx eax, byte [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x60]
cmp word [eax], 0
je 0x453128
lea eax, [ebp + 0x4f]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.00451bcc
mov eax, dword [ebp + 0x60]
add esp, 0xc
cmp word [eax], 0
je 0x453128
lea eax, [ebp + 0x4f]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.00451bcc
add esp, 0xc
jmp 0x453128
cmp byte [ebp + 0x1a], 0
je 0x452772
push dword [ebp + 0x60]
push dword [ebp - 8]
call fcn.00440720
pop ecx
pop ecx
push 2
mov dword [ebp + 0x60], eax
pop esi
jmp 0x453016
test byte [ebp + 0x30], 0x80
je 0x452a9d
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 0x452852
push 2
mov byte [ebp + 0x4f], 1
pop edx
cmp ax, 0x3b
je 0x4527dc
cmp ax, 0x2c
je 0x4527dc
cmp ax, 0x3a
je 0x4527dc
cmp ax, 0x40
je 0x4527dc
add esi, edx
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x48], esi
jne 0x4527b7
mov ax, word [esi]
cmp ax, cx
je 0x4527ec
mov word [esi], cx
add esi, edx
mov dword [ebp + 0x48], esi
cmp ax, 0x40
jne 0x452829
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x34], esi
je 0x452829
cmp ax, 0x3b
je 0x45281c
cmp ax, 0x2c
je 0x45281c
cmp ax, 0x3a
je 0x45281c
add esi, edx
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x48], esi
jne 0x4527fd
cmp word [esi], cx
je 0x452829
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.0040eec0
test eax, eax
je 0x453317
mov ecx, dword [eax + 4]
mov dword [ebp + 0x60], ecx
mov edi, dword [eax + 0x10]
xor ebx, ebx
jmp 0x452934
push 5
push esi
push str._shm_
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x452983
add esi, 0xa
mov ecx, esi
xor edi, edi
jmp 0x45288b
cmp ax, 0x3b
je 0x452896
cmp ax, 0x2c
je 0x452896
cmp ax, 0x3a
je 0x452896
cmp ax, 0x40
je 0x452896
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x48], esi
jne 0x452871
mov ax, word [esi]
cmp ax, di
je 0x4528a6
mov word [esi], di
inc esi
inc esi
mov dword [ebp + 0x48], esi
cmp ax, 0x40
jne 0x4528e3
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x34], esi
je 0x4528e3
cmp ax, 0x3b
je 0x4528d6
cmp ax, 0x2c
je 0x4528d6
cmp ax, 0x3a
je 0x4528d6
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x48], esi
jne 0x4528b7
cmp word [esi], di
je 0x4528e3
mov word [esi], di
inc esi
inc esi
mov dword [ebp + 0x48], esi
cmp word [ecx], di
je 0x4533f5
mov eax, 0x4a39d4
push eax
push eax
push eax
push 0xffffffffffffffff
push ecx
mov ecx, dword [ebp - 0x54]
call fcn.0043a412
cmp eax, edi
je 0x4533f5
cmp dword [eax + 4], 0x14
jne 0x4533f5
cmp dword [eax + 0x48], 0xfffffffe
jne 0x4533f5
cmp dword [eax + 0x50], edi
jle 0x4533f5
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 0x4529a6
lea eax, [ebp + 0x3a]
push eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp + 0x34]
push eax
call fcn.00451bcc
add esp, 0xc
test eax, eax
jle 0x4529a6
cmp dword [ebp - 0x88], 0
jl 0x4529a6
mov eax, dword [ebp - 0x8c]
jg 0x452970
test eax, eax
jbe 0x4529a6
add dword [ebp + 0x60], eax
sub edi, eax
sbb ebx, dword [ebp - 0x88]
mov dword [ebp + 4], edi
mov dword [ebp + 8], ebx
jmp 0x4529a6
lea eax, [ebp + 0x3a]
push eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp + 0x48]
push eax
call fcn.00451bcc
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 0x4529b9
inc esi
inc esi
mov dword [ebp + 0x48], esi
cmp word [esi], 0x2a
sete byte [ebp + 0x1b]
cmp byte [ebp + 0x1b], 0
je 0x4529d0
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.00451bcc
xor esi, esi
add esp, 0xc
cmp dword [ebp + 0x60], esi
jne 0x4529f7
mov dword [ebp + 0x60], 0x4a44be
jmp 0x453016
cmp eax, 1
jge 0x452a2d
cmp byte [ebp + 0x4f], 0
jne 0x452a48
cmp byte [ebp + 0x1b], 0
je 0x452a17
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cdq
mov dword [ebp + 8], edx
jmp 0x452a4b
cmp byte [ebp + 0xf], 0
jg 0x452a48
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
shl eax, 1
mov dword [ebp + 8], esi
jmp 0x452a4b
cmp byte [ebp + 0x4f], 0
je 0x452a48
cmp dword [ebp + 8], ebx
jl 0x452a48
jg 0x452a41
mov eax, dword [ebp + 4]
cmp eax, edi
jbe 0x452a4b
mov eax, edi
mov dword [ebp + 8], ebx
jmp 0x452a4b
mov eax, dword [ebp + 4]
cmp dword [ebp + 8], esi
jl 0x453351
jg 0x452a5e
cmp eax, esi
jb 0x453351
mov esi, eax
mov eax, dword [ebp + 0x30]
and ax, 0x81
xor ebx, ebx
cmp al, 0x81
jne 0x453128
mov ecx, dword [ebp - 8]
mov edi, dword [ebp + 0x60]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x44]
call fcn.0040eec0
test eax, eax
je 0x45337a
test byte [eax + 0x17], 0xc0
je 0x45338e
and dword [eax + 4], ebx
jmp 0x45338e
xor edi, edi
fldz
cmp dword [ebp + 0x30], edi
fstp qword [ebp - 0x40]
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], edi
je 0x45301d
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x34], edi
xor ecx, ecx
jmp 0x452ad7
cmp cx, 0x2c
je 0x452ae4
cmp cx, 0x3b
je 0x452ae4
cmp cx, 0x3a
je 0x452ae4
cmp cx, 0x7c
je 0x452ae4
inc eax
inc eax
mov cx, word [eax]
cmp cx, di
mov dword [ebp - 0x1c], eax
jne 0x452abd
jmp 0x452af3
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 - 0x54]
push edi
push 0x2c
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.004330ce
mov ecx, dword [ebp - 8]
push edi
push 0xffffffffffffffff
push edi
push dword [ebp + 0x44]
call fcn.0040eec0
cmp eax, edi
je 0x4533f5
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 0x452b82
push dword [ebp - 0x5c]
mov dword [ebp + 8], ebx
push esi
push dword [ebp - 0x54]
call fcn.0043f71c
mov eax, dword [ebp + 0x40]
add esp, 0xc
cmp word [eax], bx
je 0x453317
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 0x453016
cmp ecx, 4
jne 0x452c9b
mov ecx, dword [ebp + 0x24]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x2c]
push dword [ebp + 0x40]
call fcn.0040eec0
cmp word [ebp + 0x34], 0
mov edi, eax
jne 0x453421
test edi, edi
je 0x453128
test byte [edi + 0x17], 0xc0
je 0x453128
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0x38], eax
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x54], ebx
mov esi, dword [ebp - 0x7c]
add esi, dword [ebp + 0x50]
mov eax, dword [ebp - 0x78]
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 0x452bf7
cmp eax, edx
jl 0x452bf7
jg 0x453317
cmp esi, ecx
ja 0x453317
mov ebx, dword [ebp - 0x30]
mov eax, esi
sub eax, ecx
sbb ebx, edx
mov dword [ebp - 0xa0], ebx
js 0x452c5a
jg 0x452c0e
test eax, eax
jbe 0x452c5a
mov ecx, dword [ebp - 0x30]
push 0
mov eax, esi
add eax, 1
push 2
adc ecx, 0
push ecx
push eax
call fcn.0048f770
lea ebx, [eax + 2]
lea ecx, [edi + 4]
push ebx
mov dword [ebp - 0xa0], edx
call fcn.0043d3ea
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.0048f710
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 0x452c81
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 0x452c81
jg 0x452c7b
cmp dword [ebp + 0x50], ecx
jbe 0x452c81
mov dword [ebp + 0x50], ecx
mov dword [ebp + 0x54], eax
push dword [ebp + 0x50]
mov eax, dword [edi + 4]
add eax, dword [ebp - 0x7c]
push dword [ebp - 0x38]
push eax
call fcn.0041255f
add esp, 0xc
jmp 0x4533be
cmp ecx, 0x100
jne 0x452efc
mov ecx, dword [ebp + 0x24]
xor edi, edi
push edi
push 0xffffffffffffffff
push dword [ebp - 0x2c]
push dword [ebp + 0x40]
call fcn.0040eec0
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.004050a5
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.004050a5
and dword [ebp + 0x34], 0
add esp, 0x10
cmp dword [ebp + 0x14], 0
jg 0x452d27
jl 0x452d1a
cmp dword [ebp + 0x10], 0
jae 0x452d27
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.004050a5
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax]
pop ecx
pop ecx
mov ecx, eax
or ecx, 0x20
cmp cx, 0x73
je 0x452d4d
cmp cx, 0x69
jne 0x452d62
mov ecx, eax
xor ecx, 0x20
test ax, ax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0xac], ecx
jne 0x452d6c
jmp 0x452d68
mov ecx, dword [ebp - 0xac]
and dword [ebp + 0x34], 0
xor eax, eax
cmp dword [ebp - 0x6c], eax
jl 0x453317
jg 0x452d82
cmp dword [ebp - 0x70], eax
jb 0x453317
cmp dword [ebp - 0x20], eax
jl 0x453317
jg 0x452d96
cmp dword [ebp - 0x24], eax
jb 0x453317
cmp dword [ebp + 0x14], eax
jl 0x453317
jg 0x452daa
cmp dword [ebp + 0x10], eax
jbe 0x453317
cmp dword [ebp - 0x20], ebx
jg 0x453317
jl 0x452dbe
cmp dword [ebp - 0x24], esi
ja 0x453317
mov eax, dword [ebp - 0xe4]
cmp dword [ebp - 0x6c], eax
jg 0x453317
jl 0x452dd8
cmp dword [ebp - 0x70], edi
ja 0x453317
cmp dword [ebp + 0x34], 0
jne 0x452e24
sub esi, dword [ebp - 0x24]
sbb ebx, dword [ebp - 0x20]
sub edi, dword [ebp - 0x70]
sbb eax, dword [ebp - 0x6c]
cmp eax, ebx
jl 0x452df8
jg 0x452df4
cmp edi, esi
jbe 0x452df8
mov edi, esi
mov eax, ebx
cmp dword [ebp + 0x14], eax
jl 0x452e0a
jg 0x452e04
cmp dword [ebp + 0x10], edi
jbe 0x452e0a
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x14], eax
test cl, 0x20
je 0x452e24
push 0
push 2
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call fcn.0048f770
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], edx
cmp dword [ebp + 0x14], 0
jl 0x452eed
jg 0x452e3a
cmp dword [ebp + 0x10], 0
jbe 0x452eed
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 0x452e74
cmp dword [ebp + 0x34], 0
je 0x452e67
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
jmp 0x452eea
push dword [ebp + 0x10]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNA]
jmp 0x452eea
cmp dx, 0x53
jne 0x452e97
cmp dword [ebp + 0x34], 0
je 0x452e8a
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
jmp 0x452eea
push dword [ebp + 0x10]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
jmp 0x452eea
cmp dx, 0x69
jne 0x452eba
cmp dword [ebp + 0x34], 0
je 0x452ead
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x452eea
push dword [ebp + 0x10]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNIA]
jmp 0x452eea
cmp dx, 0x49
jne 0x452edd
cmp dword [ebp + 0x34], 0
je 0x452ed0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
jmp 0x452eea
push dword [ebp + 0x10]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
jmp 0x452eea
push dword [ebp + 0x10]
push ecx
push eax
call fcn.00437938
add esp, 0xc
mov dword [ebp + 0x48], eax
movsx eax, word [ebp + 0x48]
push eax
push 0x4a4078
jmp 0x452b59
cmp ecx, 1
jne 0x452fa4
xor ebx, ebx
push ebx
push 5
push ebx
shr esi, 1
push esi
call fcn.0048f820
mov edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp - 0xa0], edx
call fcn.0043d2c0
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 0x452f50
jl 0x452f49
cmp esi, ebx
jae 0x452f50
xor esi, esi
mov dword [ebp - 0x30], ebx
jmp 0x452f65
mov eax, dword [ebp - 0xa0]
cmp edx, eax
jl 0x452f65
jg 0x452f60
cmp esi, edi
jbe 0x452f65
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.0048f770
mov edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.0043d3ea
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 0x453128
cmp ecx, 2
jne 0x452ff9
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp - 0x3c], ebx
call fcn.0043d3ea
push esi
push dword [ebp + 0x58]
xor edi, edi
push esi
push dword [ebp + 0x60]
push edi
push edi
call dword [0x4bdb9c]
mov esi, eax
cmp esi, edi
jge 0x452fd2
xor esi, esi
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.0043d3ea
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 0x453128
cmp ecx, 0x20
jne 0x4533be
mov ecx, dword [edi]
mov dword [ebp + 0x60], ecx
mov esi, dword [eax]
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x94], eax
mov byte [ebp + 0x73], 1
xor ebx, ebx
jmp 0x453128
cmp byte [ebp + 0x67], 0
je 0x453049
mov eax, dword [ebp + 0x60]
cmp word [eax], di
je 0x453049
xor ecx, ecx
mov cl, byte [ebp - 0x80]
or cl, byte [ebp + 0x67]
push ecx
push eax
lea ecx, [ebp + 0x44]
call fcn.004457ae
mov ecx, dword [ebp - 8]
push eax
call fcn.00451ad2
mov dword [ebp + 0x60], eax
mov eax, dword [ebp - 0x84]
dec eax
cmp eax, edi
jl 0x453074
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.0044b25d
dec dword [ebp + 0x70]
mov eax, dword [ebp + 0x3c]
mov dword [ebp + 0x60], eax
jne 0x453058
mov eax, dword [ebp + 0x60]
cmp word [eax], di
je 0x453099
lea eax, [ebp + 4]
push eax
push dword [ebp + 0x78]
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0045124f
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 0x453535
jl 0x4530b8
cmp dword [ebp + 0x1c], edi
ja 0x453535
cmp dword [ebp + 0x54], edi
jg 0x4536ed
jl 0x4530cc
cmp dword [ebp + 0x50], edi
ja 0x4536ed
cmp byte [ebp + 0x4e], 0
je 0x453118
cmp ebx, edi
jl 0x453564
jg 0x4530e4
cmp esi, edi
jbe 0x453564
push 0x4beb4c
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.0040eec0
cmp eax, edi
mov dword [ebp - 0x3c], eax
jne 0x4537d3
push 0x4beb4c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x453128
cmp byte [ebp + 0x3b], 0
je 0x453128
cmp byte [ebp + 0x2b], 0
je 0x4538b2
xor eax, eax
cmp dword [ebp - 0x28], eax
mov dword [ebp - 0x38], eax
je 0x453160
cmp byte [ebp + 0x7c], al
jne 0x453160
mov ecx, dword [ebp + 0x24]
test byte [ecx + 9], 0xf
jne 0x453160
cmp byte [ebp + 0x73], al
jne 0x453160
cmp dword [ebp - 0xc], eax
jge 0x453160
cmp byte [ebp + 0x3b], al
jne 0x453160
push dword [ebp + 0x60]
push dword [ebp + 0x40]
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
jmp 0x4532b0
mov ecx, dword [ebp + 0x24]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x2c]
push dword [ebp + 0x40]
call fcn.0040eec0
mov edi, eax
test edi, edi
mov dword [ebp - 0x3c], edi
jne 0x4531db
cmp dword [ebp - 0xc], eax
jge 0x4531cf
cmp byte [ebp + 0x73], al
je 0x45318f
xor ecx, ecx
mov dword [ebp - 0xac], ecx
jmp 0x453197
mov ecx, esi
mov dword [ebp - 0xac], ebx
cmp byte [ebp + 0x73], 0
mov eax, 0x4a39d4
jne 0x4531a5
mov eax, dword [ebp + 0x60]
push ecx
mov ecx, dword [ebp + 0x24]
push 0xffffffffffffffff
push eax
push dword [ebp + 0x40]
call fcn.00412d3b
cmp dword [ebp - 0x64], 0
mov edi, eax
je 0x4531cb
test edi, edi
je 0x4531cf
push dword [ebp - 0x64]
lea ecx, [edi + 8]
call fcn.0044580a
test edi, edi
jne 0x4531db
mov dword [ebp - 0x38], 1
jmp 0x4532b0
xor edx, edx
cmp dword [ebp - 0xc], edx
jl 0x453239
mov ecx, dword [edi + 0x10]
mov eax, ecx
sub eax, dword [ebp - 4]
cmp dword [ebp - 0x14], edx
jb 0x4531fc
ja 0x4531f6
cmp dword [ebp - 0x18], eax
jbe 0x4531fc
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
xor eax, eax
cmp dword [ebp], eax
ja 0x4532b0
jb 0x453212
cmp dword [ebp - 4], ecx
jae 0x4532b0
cmp dword [ebp - 0x14], 0
ja 0x453222
cmp dword [ebp - 0x18], 0
jbe 0x4532b0
push dword [ebp - 0x18]
mov eax, dword [edi + 4]
add eax, dword [ebp - 4]
push dword [ebp - 0xc]
push eax
call fcn.0048f710
add esp, 0xc
jmp 0x4532b0
cmp byte [ebp + 0x3b], 0
jne 0x4532b0
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
je 0x453275
mov al, byte [ecx + 0x17]
and al, 0xc0
cmp al, 0xc0
jne 0x45326d
cmp byte [ebp + 0x73], 0
je 0x45325d
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.00437ed7
add esp, 0x10
jmp 0x4532b0
test al, al
je 0x453275
and dword [ecx + 4], 0
cmp byte [ebp + 0x73], 0
je 0x4532a1
mov ecx, dword [edi + 0x10]
mov eax, dword [ebp - 0x94]
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 0x4532b0
test ecx, ecx
je 0x4532b0
push esi
push dword [ebp + 0x60]
mov ecx, edi
call fcn.00402d64
lea ecx, [ebp + 0x58]
call fcn.00437884
lea ecx, [ebp + 0x44]
call fcn.00437884
lea ecx, [ebp + 0x3c]
call fcn.00437884
cmp dword [ebp - 0x50], 0
jle 0x4538f8
mov esi, dword [ebp - 0x9c]
push dword [ebp - 0x44]
mov eax, dword [ebp - 0xa8]
push dword [ebp - 0x44]
dec dword [ebp - 0x50]
push dword [ebp - 0x90]
mov dword [ebp + 0x40], eax
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
push dword [ebp - 0x4c]
mov dword [ebp + 0x60], esi
push dword [ebp - 0x98]
push esi
call fcn.0043a60a
add esp, 0x1c
inc dword [ebp - 0x44]
inc dword [ebp - 0x4c]
jmp 0x452691
lea ecx, [ebp + 0x58]
call fcn.00437884
lea ecx, [ebp + 0x44]
call fcn.00437884
lea ecx, [ebp + 0x3c]
call fcn.00437884
lea ecx, [ebp + 0x5c]
call fcn.00437884
mov eax, 0x4beb4c
test eax, eax
je 0x453347
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, 0x80070057
jmp 0x453913
lea ecx, [ebp + 0x58]
call fcn.00437884
lea ecx, [ebp + 0x44]
call fcn.00437884
lea ecx, [ebp + 0x3c]
call fcn.00437884
lea ecx, [ebp + 0x5c]
call fcn.00437884
mov eax, 0x4beb4c
cmp eax, esi
jmp 0x45333e
mov ecx, dword [ebp + 0x24]
push 0
push 0xffffffffffffffff
push 0x4a39d4
push dword [ebp + 0x40]
call fcn.00412d3b
xor ecx, ecx
cmp dword [ebp + 0x30], 0x83
mov edx, 0xc0000000
je 0x4533a3
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.00437884
lea ecx, [ebp + 0x58]
call fcn.00437884
lea ecx, [ebp + 0x44]
call fcn.00437884
lea ecx, [ebp + 0x3c]
call fcn.00437884
lea ecx, [ebp + 0x5c]
call fcn.00437884
mov eax, 0x4beb4c
test eax, eax
je 0x4533ee
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor edi, edi
jmp 0x453913
lea ecx, [ebp + 0x58]
call fcn.00437884
lea ecx, [ebp + 0x44]
call fcn.00437884
lea ecx, [ebp + 0x3c]
call fcn.00437884
lea ecx, [ebp + 0x5c]
call fcn.00437884
mov eax, 0x4beb4c
cmp eax, edi
jmp 0x45333e
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.004050a5
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.004050a5
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.004050a5
add esp, 0x18
cmp dword [ebp - 0x20], 0
jl 0x453317
jg 0x45347e
cmp dword [ebp - 0x24], 0
jb 0x453317
cmp dword [ebp - 0x14], 0
jl 0x453317
jg 0x453494
cmp dword [ebp - 0x18], 0
jbe 0x453317
cmp dword [ebp - 0x20], ebx
jg 0x453317
jl 0x4534a8
cmp dword [ebp - 0x24], esi
ja 0x453317
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp + 0x20]
jg 0x453317
mov ecx, dword [ebp - 0x34]
jl 0x4534c2
cmp ecx, dword [ebp + 0x1c]
ja 0x453317
test eax, eax
jg 0x4534d0
jl 0x4534cc
test ecx, ecx
jae 0x4534d0
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 0x4534ef
jg 0x4534ea
cmp dword [ebp - 0x18], esi
jbe 0x4534ef
mov dword [ebp - 0x18], esi
mov eax, ebx
cmp eax, dword [ebp + 0x20]
jl 0x453506
jg 0x4534fe
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp + 0x1c]
jbe 0x453509
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
jmp 0x453509
mov edx, dword [ebp - 0x18]
test eax, eax
jl 0x4533be
jg 0x45351b
test edx, edx
jbe 0x4533be
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.00412515
jmp 0x452c93
mov dword [ebp - 0x10], ecx
lea ecx, [ebp + 0x7c]
call fcn.0043d3a5
mov ecx, dword [ebp - 0x54]
push 0x2c
push 0x3a
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.004330ce
mov eax, dword [ebp + 0x7c]
cmp word [eax], di
jne 0x45359d
lea ecx, [ebp + 0x7c]
call fcn.00437884
lea ecx, [ebp + 0x58]
call fcn.00437884
lea ecx, [ebp + 0x44]
call fcn.00437884
lea ecx, [ebp + 0x3c]
call fcn.00437884
lea ecx, [ebp + 0x5c]
call fcn.00437884
mov eax, 0x4beb4c
cmp eax, edi
je 0x453913
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x453913
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x10]
push eax
mov dword [ebp - 4], edi
mov dword [ebp], edi
call fcn.004486b7
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.0040eec0
xor ecx, ecx
cmp eax, edi
mov dword [ebp + 0x70], 1
je 0x4535e6
mov ecx, dword [eax + 0x10]
cmp edi, esi
jl 0x45369b
jg 0x4535f8
cmp ecx, ebx
jb 0x45369b
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.0041255f
add esp, 0xc
cmp dword [ebp - 0x58], edi
je 0x45362b
fld dword [ebp - 0xe0]
push ecx
push ecx
fstp qword [esp]
push 0x4ac6a8
jmp 0x453645
cmp dword [ebp - 0x60], edi
jne 0x453635
cmp dword [ebp - 0x68], edi
je 0x453654
fld qword [ebp - 0xe0]
push ecx
push ecx
fstp qword [esp]
push 0x4ac6a0
lea eax, [ebp - 0x1c8]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
jmp 0x453698
cmp dword [ebp + 0x1c], 0x64
jne 0x45367d
xor eax, eax
cmp eax, edi
jne 0x45367d
push dword [ebp - 0xe0]
lea eax, [ebp - 0x1c8]
push str.0x_p
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x45369b
push dword [ebp + 0x2c]
lea eax, [ebp - 0x1c8]
push dword [ebp - 0xdc]
push dword [ebp - 0xe0]
push eax
call fcn.0048425e
add esp, 0x10
mov ecx, dword [ebp + 0x24]
lea eax, [ebp - 0x1c8]
push eax
push dword [ebp + 0x7c]
call fcn.0043cc80
lea ecx, [ebp + 0x7c]
call fcn.00437884
lea ecx, [ebp + 0x58]
call fcn.00437884
lea ecx, [ebp + 0x44]
call fcn.00437884
lea ecx, [ebp + 0x3c]
call fcn.00437884
lea ecx, [ebp + 0x5c]
call fcn.00437884
mov eax, 0x4beb4c
cmp eax, edi
je 0x4536e5
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, dword [ebp + 0x70]
jmp 0x453913
cmp dword [ebp - 0x58], edi
mov dword [ebp + 0x7c], ecx
je 0x45370d
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.0043ffce
fld qword [ebp - 0x40]
fstp dword [ebp - 0xe0]
jmp 0x45373f
cmp dword [ebp - 0x60], edi
jne 0x453717
cmp dword [ebp - 0x68], edi
je 0x45372f
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.0043ffce
fld qword [ebp - 0x40]
fstp qword [ebp - 0xe0]
jmp 0x45373f
lea eax, [ebp - 0xe0]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.004486b7
mov eax, dword [ebp + 0x7c]
cmp word [eax], di
pop ecx
pop ecx
je 0x453762
add dword [ebp + 0x7c], 2
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0x7c]
push eax
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], edi
call fcn.004486b7
pop ecx
pop ecx
mov ecx, dword [ebp + 0x24]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x2c]
push dword [ebp + 0x40]
call fcn.0040eec0
mov edi, eax
test edi, edi
jne 0x452bc8
mov ecx, dword [ebp + 0x24]
push eax
push 0xffffffffffffffff
push 0x4a39d4
push dword [ebp + 0x40]
call fcn.00412d3b
mov edi, eax
test edi, edi
jne 0x452bc8
lea ecx, [ebp + 0x58]
call fcn.00437884
lea ecx, [ebp + 0x44]
call fcn.00437884
lea ecx, [ebp + 0x3c]
call fcn.00437884
lea ecx, [ebp + 0x5c]
call fcn.00437884
mov eax, 0x4beb4c
test eax, eax
je 0x4537cb
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor edi, edi
inc edi
jmp 0x453913
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 0x453859
jl 0x4537f0
test ebx, ebx
jae 0x453859
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 - 0xa0], ecx
call fcn.0048f770
mov dword [ebp - 0x34], eax
add eax, 2
push eax
mov ecx, edi
mov dword [ebp - 0x30], edx
call fcn.0043d3ea
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 0x45385f
cmp byte [ebp + 0x7f], 0
je 0x453852
push dword [ebp - 4]
push dword [ebp + 0x70]
push edi
call fcn.0041255f
add esp, 0xc
mov eax, dword [ebp - 4]
add edi, eax
jmp 0x453886
mov byte [ebp + 0x7f], 0
jmp 0x4537f7
cmp byte [ebp + 0x4e], 2
jne 0x453893
cmp byte [ebp + 0x7f], 0
push dword [ebp - 4]
lea eax, [esi + edi]
je 0x45387c
push dword [ebp + 0x70]
push eax
call fcn.0041255f
jmp 0x453883
push edi
push eax
call fcn.00412515
add esp, 0xc
push esi
push dword [ebp + 0x60]
push edi
call fcn.0041255f
add esp, 0xc
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0xa0]
push 0x4beb4c
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4533be
mov ecx, dword [ebp + 0x24]
xor edi, edi
push edi
push 0xffffffffffffffff
push dword [ebp - 0x2c]
push dword [ebp + 0x40]
call fcn.0040eec0
mov esi, eax
cmp esi, edi
je 0x4533be
test byte [esi + 0x17], 0xc0
je 0x4538e0
mov eax, dword [esi + 4]
mov word [eax], di
jmp 0x4533be
push 0x4a39d4
lea ecx, [esi + 4]
call fcn.004457ae
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
jmp 0x4533be
lea ecx, [ebp + 0x5c]
call fcn.00437884
mov eax, 0x4beb4c
test eax, eax
je 0x453910
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, dword [ebp - 0x38]
lea ecx, [ebp - 0x5c]
call fcn.00437884
lea ecx, [ebp - 0x74]
call fcn.00437884
mov eax, edi
pop edi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10