Function at 0x45c7b6
Capabilities:
Encode data using base64
Parse credit card information
Set environment variable

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x264
or dword [ebp - 0x68], 0xffffffff
or dword [ebp - 0x58], 0xffffffff
xor eax, eax
inc eax
push ebx
xor ebx, ebx
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0x84], eax
mov eax, dword [ebp + 0x70]
mov dword [ebp + 0xc], ecx
push esi
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x80], ebx
mov byte [ebp + 0x67], bl
mov byte [ebp + 0x4b], bl
mov byte [ebp + 7], bl
mov dword [ebp + 0x30], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp + 0x40], ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x98], ebx
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], ebx
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp + 0x2c], str._I64d
mov dword [ebp + 0x14], eax
call fcn.004450a0
lea eax, [ebp + 0x14]
push eax
call fcn.0043e611
mov eax, dword [ebp + 0x14]
pop ecx
jmp 0x45c84d
inc byte [ebp + 0x7c]
inc eax
inc eax
mov dword [ebp + 0x14], eax
cmp word [eax], 0x26
je 0x45c845
lea ecx, [ebp - 0xb0]
call fcn.00444e32
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x4c], eax
jmp 0x45c871
cmp cx, 0x3d
je 0x45c879
inc eax
inc eax
mov dword [ebp + 0x14], eax
mov cx, word [eax]
cmp cx, bx
jne 0x45c866
mov dword [ebp + 0x60], 0x4c0a1c
cmp word [eax], 0x3d
mov ecx, eax
mov byte [ebp + 0x37], 0
je 0x45c892
mov byte [ebp + 0x37], 1
jmp 0x45c89a
inc eax
inc eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x60], eax
mov word [ecx], bx
push dword [ebp + 0x4c]
call fcn.00410ed4
mov edx, dword [ebp + 0x4c]
cmp word [edx], 0x7e
pop ecx
jne 0x45c8ea
inc edx
inc edx
mov ecx, edx
mov dword [ebp - 0x80], ecx
jmp 0x45c8c0
cmp ax, 0x7e
je 0x45c8cb
inc edx
inc edx
mov dword [ebp + 0x4c], edx
mov ax, word [edx]
cmp ax, bx
jne 0x45c8b8
cmp word [edx], 0x7e
je 0x45c8db
mov esi, 0x80070057
jmp 0x45eb45
mov word [edx], bx
add dword [ebp + 0x4c], 2
cmp word [ecx], bx
jne 0x45c8ea
mov dword [ebp - 0x80], ebx
mov esi, dword [ebp + 0x78]
fldz
cmp esi, ebx
fstp qword [ebp - 0x54]
push edi
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x64], ebx
je 0x45d3aa
mov dword [ebp - 0x10], esi
mov dword [ebp + 0x5c], ebx
xor edi, edi
mov di, word [esi]
cmp di, bx
je 0x45d3aa
mov eax, edi
call fcn.0040f8eb
test al, al
jne 0x45d3aa
cmp di, 0x2e
je 0x45d39f
cmp di, 0x24
je 0x45d39f
cmp di, 0x25
je 0x45d39f
cmp di, 0x2a
jne 0x45c951
or byte [ebp + 0x67], 4
jmp 0x45d39f
push 0x7e
pop ecx
cmp di, cx
jne 0x45c9a6
lea eax, [esi + 2]
cmp word [eax], cx
jne 0x45c96a
or byte [ebp + 0x67], 2
jmp 0x45d39d
cmp di, cx
jne 0x45c9a6
lea eax, [esi + 2]
cmp word [eax], 0x2e
jne 0x45c981
or byte [ebp + 0x67], 8
jmp 0x45d39d
cmp di, cx
jne 0x45c9a6
lea eax, [esi + 2]
cmp word [eax], 0x2a
jne 0x45c998
or byte [ebp + 0x67], 0xa
jmp 0x45d39d
cmp di, cx
jne 0x45c9a6
or byte [ebp + 0x67], 1
jmp 0x45d39f
cmp di, 0x3c
jne 0x45c9b5
mov byte [ebp + 0x4b], 1
jmp 0x45d39f
cmp di, 0x3e
jne 0x45c9c4
mov byte [ebp + 0x4b], 2
jmp 0x45d39f
push 4
push esi
push str._std
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45c9ea
add esi, 6
mov dword [ebp - 0xa4], 0x80
jmp 0x45d39f
push 4
push esi
push str._env
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45ca10
add esi, 6
mov dword [ebp - 0xa4], 0x40
jmp 0x45d39f
push 4
push esi
push str._raw
call fcn.0043fac4
add esp, 0xc
test al, al
jne 0x45cdd5
push 4
push esi
push str._def
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45ca48
add esi, 6
add byte [ebp + 0x7c], 2
jmp 0x45d39f
push 4
push esi
push str._tom
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45ca6b
add esi, 6
mov dword [ebp + 0x30], 1
jmp 0x45d39f
push 4
push esi
push str._tow
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45ca8e
add esi, 6
mov dword [ebp + 0x30], 2
jmp 0x45d39f
push 5
push esi
push str._copy
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45cab1
add esi, 8
mov dword [ebp + 0x30], 4
jmp 0x45d39f
push 4
push esi
push str._cmp
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45cad4
add esi, 8
mov dword [ebp + 0x30], pe_nt_image_headers32
jmp 0x45d39f
push 5
push esi
push str._addr
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45caf5
push 8
pop eax
add esi, eax
mov dword [ebp + 0x30], eax
jmp 0x45d39f
push 0xb
push esi
push str._mkfixdummy
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45cb18
add esi, 0x14
mov dword [ebp + 0x30], 0x83
jmp 0x45d39f
push 8
push esi
push str._mkdummy
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45cb3b
add esi, 0xe
mov dword [ebp + 0x30], 0x81
jmp 0x45d39f
push 5
push esi
push str._make
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45cb5e
add esi, 8
mov dword [ebp + 0x30], 0x80
jmp 0x45d39f
push 5
push esi
push str._swap
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45cb81
add esi, 8
mov dword [ebp + 0x30], 0x20
jmp 0x45d39f
push 5
push esi
push str._zero
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45cba0
add esi, 8
mov dword [ebp - 0x58], ebx
jmp 0x45d39f
push 4
push esi
push str._ret
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45cbf1
add esi, 8
cmp word [esi], 0x3a
mov dword [ebp - 0x24], 1
mov dword [ebp + 0x70], esi
jne 0x45cbcc
inc esi
inc esi
mov dword [ebp + 0x70], esi
mov ax, word [esi]
call fcn.004449cb
test al, al
je 0x45cbea
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.00451cdf
mov esi, dword [ebp + 0x70]
pop ecx
pop ecx
dec esi
dec esi
jmp 0x45d39f
push 4
push esi
push str._get
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45cc2e
add esi, 8
cmp word [esi], 0x3a
mov dword [ebp + 0x40], 1
mov dword [ebp + 0x70], esi
jne 0x45cc1d
inc esi
inc esi
mov dword [ebp + 0x70], esi
mov ax, word [esi]
call fcn.004449cb
test al, al
je 0x45cbea
lea eax, [ebp + 0x40]
jmp 0x45cbdb
push 3
push esi
push 0x4c9f18
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45cc4e
add esi, 4
mov byte [ebp + 7], 1
jmp 0x45d39f
push 2
push esi
push 0x4c9f14
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45cc7d
add esi, 4
mov dword [ebp + 0x70], esi
mov dword [ebp - 0x98], 1
lea eax, [ebp - 0x98]
jmp 0x45cbdb
push 2
push esi
push 0x4c9f10
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45cd04
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x70]
add esi, 4
push eax
mov dword [ebp + 0x70], esi
call fcn.00405ba5
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.00405ba5
mov esi, dword [ebp - 0x74]
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp + 0x70]
push eax
mov dword [ebp - 0x70], esi
call fcn.00451cdf
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.00451cdf
add esp, 0x20
cmp dword [ebp - 0x84], ebx
jg 0x45cce9
mov dword [ebp - 0x84], 1
mov eax, dword [ebp - 0x1c]
sub eax, esi
mov esi, dword [ebp + 0x70]
inc eax
cmp word [esi], 0x5d
mov dword [ebp - 0x68], eax
je 0x45d39f
jmp 0x45cbea
cmp di, 0x2d
jne 0x45cf99
inc esi
push 1
inc esi
push esi
push 0x4c5318
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45cdb5
inc esi
inc esi
xor ecx, ecx
mov cx, word [esi]
cmp cx, bx
push 0x2a
pop edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov edx, esi
je 0x45cd62
mov eax, ecx
call fcn.0040f8eb
test al, al
jne 0x45cd5a
cmp cx, 0x3a
je 0x45cd5a
inc esi
inc esi
mov cx, word [esi]
cmp cx, bx
jne 0x45cd3f
cmp word [esi], bx
je 0x45cd62
mov word [esi], bx
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0xbc]
push eax
push dword [ebp + 0x4c]
lea eax, [ebp - 0x94]
push edx
push dword [ebp + 0xc]
mov dword [ebp - 0xbc], ebx
push eax
call fcn.00452084
add esp, 0x18
cmp eax, ebx
mov dword [ebp - 0x20], eax
jl 0x45d401
mov esi, dword [ebp - 0xbc]
cmp word [esi], di
mov dword [ebp - 0x10], ebx
jne 0x45cda7
mov esi, 0x4c9f08
mov eax, dword [ebp - 0x64]
cmp eax, ebx
jle 0x45cdb5
mov ecx, dword [ebp + 0x4c]
mov word [ecx + eax*2], bx
push 4
pop edi
push edi
push esi
push str.char
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45cddd
mov dword [ebp + 0x50], 1
mov dword [ebp + 0x54], ebx
add esi, 6
jmp 0x45d39f
push 5
push esi
push str.wchar
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45ce03
mov dword [ebp + 0x50], 2
mov dword [ebp + 0x54], ebx
add esi, 8
jmp 0x45d39f
push 5
push esi
push str.short
call fcn.0043fac4
add esp, 0xc
test al, al
jne 0x45cdf1
push 3
push esi
push 0x4c9468
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45ce38
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
add esi, edi
jmp 0x45d39f
push 6
push esi
push str.intptr
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45ce5a
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
add esi, 0xa
jmp 0x45d39f
push 5
push esi
push str.intpe
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45ce7c
add esi, 8
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
jmp 0x45d39f
push 5
push esi
push str.float
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45ce9b
mov dword [ebp - 0x78], edi
mov dword [ebp + 0x50], edi
jmp 0x45cdf8
push 6
push esi
push str.double
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45cebd
push 8
pop eax
mov dword [ebp - 0x88], eax
mov dword [ebp + 0x50], eax
jmp 0x45ce4f
push 7
push esi
push str.ldouble
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45cee5
push 8
pop eax
mov dword [ebp - 0x7c], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], ebx
add esi, 0xc
jmp 0x45d39f
push 5
push esi
push str.int64
call fcn.0043fac4
add esp, 0xc
test al, al
push 8
jne 0x45cf8e
push esi
push str.longlong
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45cf20
add esi, 0xe
mov dword [ebp + 0x50], 8
jmp 0x45ce74
push edi
push esi
push str.long
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45cf3b
mov dword [ebp + 0x50], edi
jmp 0x45cdd2
push 6
push esi
push str.intsys
call fcn.0043fac4
add esp, 0xc
test al, al
jne 0x45d303
push 3
push esi
push 0x4c9124
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45d39f
xor eax, eax
mov ax, word [esi + 6]
and eax, 0xffdf
cmp ax, 0x53
je 0x45cf8c
cmp ax, 0x41
jb 0x45cf8c
cmp ax, 0x5a
jbe 0x45d39f
push 4
pop eax
add esi, eax
mov dword [ebp + 0x50], eax
jmp 0x45ce74
cmp di, 0x3f
jne 0x45d39f
inc esi
push 1
inc esi
push esi
push 0x4c5318
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45d04c
inc esi
inc esi
xor ecx, ecx
mov cx, word [esi]
cmp cx, bx
push 0x2a
pop edi
mov dword [ebp + 0x1c], edi
mov edx, esi
je 0x45cff9
mov eax, ecx
call fcn.0040f8eb
test al, al
jne 0x45cff1
cmp cx, 0x3a
je 0x45cfee
inc esi
inc esi
mov cx, word [esi]
cmp cx, bx
jne 0x45cfd1
jmp 0x45cff1
mov dword [ebp + 0x5c], esi
cmp word [esi], bx
je 0x45cff9
mov word [esi], bx
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0xd0]
push eax
push dword [ebp + 0x4c]
lea eax, [ebp - 0x94]
push edx
push dword [ebp + 0xc]
mov dword [ebp - 0xd0], ebx
push eax
call fcn.00452084
add esp, 0x18
cmp eax, ebx
mov dword [ebp - 0x20], eax
jl 0x45d401
mov esi, dword [ebp - 0xd0]
cmp word [esi], di
mov dword [ebp - 0x10], ebx
jne 0x45d03e
mov esi, 0x4c9f08
mov eax, dword [ebp - 0x64]
cmp eax, ebx
jle 0x45d04c
mov ecx, dword [ebp + 0x4c]
mov word [ecx + eax*2], bx
push 4
pop edi
push edi
push esi
push str.char
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45d0a8
xor edx, edx
inc edx
add esi, 6
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], edx
mov dword [ebp + 0x2c], str.0x_I64X
je 0x45d080
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45d092
mov dword [ebp - 0xac], edx
cmp cx, 0x30
jne 0x45d390
mov dword [ebp + 0x2c], str.0x_02I64X
jmp 0x45d38e
push 5
push esi
push str.wchar
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45d0c7
push 2
pop edx
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x1c], edx
jmp 0x45d0e6
push 5
push esi
push str.short
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45d123
push 2
pop eax
push eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x1c], eax
pop edx
add esi, 8
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x2c], str.0x_I64X
je 0x45d0fb
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45d10d
mov dword [ebp - 0xac], edx
cmp cx, 0x30
jne 0x45d390
mov dword [ebp + 0x2c], str.0x_04I64X
jmp 0x45d38e
push 3
push esi
push 0x4c9468
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45d15e
add esi, edi
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x1c], 0x64
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x2c], str.0x_I64X
je 0x45d155
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
cmp word [eax], 0x30
jmp 0x45d1a3
push 6
push esi
push str.intptr
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45d1ae
add esi, 0xa
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x2c], str.0x_I64X
je 0x45d18d
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45d19f
mov dword [ebp - 0xac], edi
cmp cx, 0x30
jne 0x45d390
jmp 0x45d38e
push 5
push esi
push str.float
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45d1d6
add esi, 8
mov dword [ebp - 0x78], edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], edi
jmp 0x45d39f
push 6
push esi
push str.double
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45d204
push 8
pop eax
add esi, 0xa
mov dword [ebp - 0x88], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], eax
jmp 0x45d39f
push 7
push esi
push str.ldouble
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45d223
push 8
pop eax
add esi, 0xc
mov dword [ebp - 0x7c], eax
jmp 0x45d1f6
push 5
push esi
push str.int64
call fcn.0043fac4
add esp, 0xc
test al, al
push 8
je 0x45d23e
pop edx
add esi, edx
jmp 0x45d256
push esi
push str.longlong
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45d28f
push 8
add esi, 0xe
pop edx
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], edx
je 0x45d267
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45d279
mov dword [ebp - 0xac], edx
cmp cx, 0x30
jne 0x45d390
mov dword [ebp + 0x2c], str.0x_016I64X
jmp 0x45d38e
push edi
push esi
push str.long
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45d2c8
mov eax, dword [ebp + 0x5c]
add esi, 6
cmp eax, ebx
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x2c], str.0x_I64X
je 0x45d36f
lea esi, [eax - 2]
jmp 0x45d36f
push 5
push esi
push str.intpe
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45d2e1
add esi, 8
jmp 0x45d35e
push 6
push esi
push str.intsys
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45d345
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x1c], edi
je 0x45d303
mov esi, dword [ebp + 0x5c]
add esi, 0xfffffff6
xor eax, eax
add esi, 0xa
cmp byte [0x4dbc45], 3
mov dword [ebp + 0x54], ebx
sete al
lea eax, [eax*4 + 4]
mov dword [ebp + 0x50], eax
lea eax, [esi + 2]
cmp word [eax], 0x30
jne 0x45d39f
cmp byte [0x4dbc45], 3
mov esi, eax
je 0x45d33c
mov dword [ebp + 0x2c], str.0x_08I64X
jmp 0x45d39f
mov dword [ebp + 0x2c], str.0x_016I64X
jmp 0x45d39f
push 3
push esi
push 0x4c9124
call fcn.0043fac4
add esp, 0xc
test al, al
je 0x45d39f
push 4
pop edi
add esi, edi
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], edi
je 0x45d36f
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45d381
mov dword [ebp - 0xac], edi
cmp cx, 0x30
jne 0x45d390
mov dword [ebp + 0x2c], str.0x_08I64X
mov esi, eax
lea eax, [esi + 2]
cmp word [eax], 0x40
jne 0x45d39f
add dword [ebp + 0x2c], 4
mov esi, eax
inc esi
inc esi
cmp dword [ebp - 0x10], ebx
jne 0x45c907
lea ecx, [ebp - 0x6c]
call fcn.00444e32
mov esi, dword [ebp + 0xc]
push 0x3b
push 0x2c
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp + 0x4c]
push eax
mov ecx, esi
call fcn.004398a4
push 0x3b
push 0x2c
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp + 0x4c]
push eax
mov ecx, esi
call fcn.004398a4
cmp dword [ebp + 0x30], 8
mov eax, dword [ebp - 0xb0]
mov dword [ebp + 0x4c], eax
je 0x45d40b
cmp word [eax], bx
jne 0x45d40b
mov eax, dword [ebp - 0x6c]
cmp word [eax], bx
jne 0x45d40b
xor esi, esi
jmp 0x45eb3c
mov esi, 0x80070057
jmp 0x45eb44
cmp byte [ebp + 0x7c], 2
mov edx, esi
setge byte [ebp + 0x2b]
mov al, byte [ebp + 0x2b]
neg al
mov dword [ebp - 0x10], edx
sbb eax, eax
and eax, esi
cmp dword [ebp - 0x24], ebx
mov dword [ebp - 0x44], eax
mov eax, esi
mov dword [ebp + 0x18], eax
jle 0x45d44c
dec dword [ebp - 0x24]
js 0x45d443
mov ecx, dword [ebp - 0x24]
inc ecx
sub dword [ebp - 0x24], ecx
dec ecx
mov eax, dword [eax + 0x24]
jne 0x45d43a
mov dword [ebp + 0x18], eax
cmp byte [ebp + 0x2b], 0
je 0x45d44c
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 0x40]
cmp eax, ebx
jle 0x45d460
dec eax
js 0x45d460
inc eax
dec eax
mov edx, dword [edx + 0x24]
jne 0x45d457
mov dword [ebp - 0x10], edx
cmp byte [ebp + 0x37], 0
je 0x45d46d
mov byte [ebp + 0x4b], 0
mov dword [ebp + 0x30], ebx
push 0x4dcd58
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [ebp - 0x68], ebx
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp + 0x5c], ebx
mov dword [ebp - 0xc8], ebx
mov dword [ebp - 0xcc], ebx
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xd4], ebx
jle 0x45d4e7
push dword [ebp + 0x4c]
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.00444e77
mov eax, dword [ebp + 0x4c]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp + 0x5c]
lea esi, [eax + esi*2]
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xd4], esi
jmp 0x45e259
xor esi, esi
push 0xa
xor eax, eax
pop ecx
mov dword [ebp - 0x114], esi
mov dword [ebp - 0x110], esi
lea edi, [ebp - 0x10c]
rep stosd dword es:[edi], eax
xor ebx, ebx
lea eax, [ebp - 0x114]
lea ecx, [ebp + 0x44]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ebx
mov byte [ebp + 0x73], bl
mov dword [ebp + 8], eax
mov dword [ebp + 0x3c], esi
call fcn.00444e32
lea eax, [ebp + 0x58]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0xb8]
xor ecx, ecx
cmp dword [ebp - 0x58], ecx
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x58]
cdq
mov dword [ebp + 0x58], ecx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 4], eax
mov dword [ebp], edx
mov dword [ebp - 0x40], 0xff000000
jl 0x45d601
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0045c760
movzx eax, byte [ebp - 0x40]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x60]
xor edi, edi
add esp, 0xc
cmp word [eax], di
mov dword [ebp + 0x40], edi
je 0x45dfef
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0045c760
mov eax, dword [ebp + 0x60]
add esp, 0xc
cmp word [eax], di
je 0x45d5e4
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp + 0x60]
push eax
mov dword [ebp + 0x40], edi
call fcn.0045c760
add esp, 0xc
test eax, eax
jle 0x45d5e4
cmp dword [ebp + 0x40], edi
jne 0x45d5ed
cmp dword [ebp - 0x40], edi
je 0x45dfef
movzx ecx, byte [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
call fcn.004afca0
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
cmp dword [ebp + 0x40], edi
je 0x45dfef
cmp dword [ebp - 0x40], edi
jne 0x45dfef
mov eax, dword [ebp + 0x40]
mov dword [ebp - 0x40], eax
jmp 0x45dfef
cmp byte [ebp + 7], 0
je 0x45d61f
push dword [ebp + 0x60]
push dword [ebp - 0x10]
call fcn.004487a9
pop ecx
pop ecx
push 2
mov dword [ebp + 0x60], eax
pop esi
jmp 0x45dedb
test byte [ebp + 0x30], 0x80
je 0x45d94a
mov esi, dword [ebp + 0x60]
xor ecx, ecx
push 0x26
or edi, 0xffffffff
pop eax
cmp word [esi], ax
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp + 0x38], esi
mov ebx, edi
mov byte [ebp + 0x2a], cl
mov dword [ebp + 0x24], ecx
mov dword [ebp + 0x40], ecx
jne 0x45d6ff
push 2
mov byte [ebp + 0x2a], 1
pop edx
cmp ax, 0x3b
je 0x45d689
cmp ax, 0x2c
je 0x45d689
cmp ax, 0x3a
je 0x45d689
cmp ax, 0x40
je 0x45d689
add esi, edx
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x38], esi
jne 0x45d664
mov ax, word [esi]
cmp ax, cx
je 0x45d699
mov word [esi], cx
add esi, edx
mov dword [ebp + 0x38], esi
cmp ax, 0x40
jne 0x45d6d6
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x40], esi
je 0x45d6d6
cmp ax, 0x3b
je 0x45d6c9
cmp ax, 0x2c
je 0x45d6c9
cmp ax, 0x3a
je 0x45d6c9
add esi, edx
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x38], esi
jne 0x45d6aa
cmp word [esi], cx
je 0x45d6d6
mov word [esi], cx
add esi, edx
mov dword [ebp + 0x38], esi
mov ecx, dword [ebp - 0x10]
push 0
push 0xffffffffffffffff
push 0
push dword [ebp + 0x60]
call fcn.00410d4d
test eax, eax
je 0x45e29a
mov ecx, dword [eax + 4]
mov dword [ebp + 0x60], ecx
mov ebx, dword [eax + 0x10]
xor edi, edi
jmp 0x45d7e1
push 5
push esi
push str._shm_
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x45d830
add esi, 0xa
mov ecx, esi
xor edi, edi
jmp 0x45d738
cmp ax, 0x3b
je 0x45d743
cmp ax, 0x2c
je 0x45d743
cmp ax, 0x3a
je 0x45d743
cmp ax, 0x40
je 0x45d743
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x38], esi
jne 0x45d71e
mov ax, word [esi]
cmp ax, di
je 0x45d753
mov word [esi], di
inc esi
inc esi
mov dword [ebp + 0x38], esi
cmp ax, 0x40
jne 0x45d790
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x40], esi
je 0x45d790
cmp ax, 0x3b
je 0x45d783
cmp ax, 0x2c
je 0x45d783
cmp ax, 0x3a
je 0x45d783
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x38], esi
jne 0x45d764
cmp word [esi], di
je 0x45d790
mov word [esi], di
inc esi
inc esi
mov dword [ebp + 0x38], esi
cmp word [ecx], di
je 0x45e7fe
mov eax, 0x4c0a1c
push eax
push eax
push eax
push 0xffffffffffffffff
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.004415f2
cmp eax, edi
je 0x45e7fe
cmp dword [eax + 4], 0x14
jne 0x45e7fe
cmp dword [eax + 0x48], 0xfffffffe
jne 0x45e7fe
cmp dword [eax + 0x50], edi
jle 0x45e7fe
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 + 0x40], 0
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], edi
je 0x45d853
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.0045c760
add esp, 0xc
test eax, eax
jle 0x45d853
cmp dword [ebp - 0x9c], 0
jl 0x45d853
mov eax, dword [ebp - 0xa0]
jg 0x45d81d
test eax, eax
jbe 0x45d853
add dword [ebp + 0x60], eax
sub ebx, eax
sbb edi, dword [ebp - 0x9c]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], edi
jmp 0x45d853
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp + 0x38]
push eax
call fcn.0045c760
mov eax, dword [ebp - 0xa0]
mov esi, dword [ebp + 0x38]
add esp, 0xc
mov dword [ebp + 0x60], eax
cmp word [esi], 0x7e
sete byte [ebp + 6]
cmp byte [ebp + 6], 0
je 0x45d866
inc esi
inc esi
mov dword [ebp + 0x38], esi
cmp word [esi], 0x2a
sete byte [ebp + 0x13]
cmp byte [ebp + 0x13], 0
je 0x45d87d
inc esi
inc esi
and dword [ebp + 0x24], 0
mov dword [ebp + 0x38], esi
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp + 0x38]
push eax
call fcn.0045c760
xor esi, esi
add esp, 0xc
cmp dword [ebp + 0x60], esi
jne 0x45d8a4
mov dword [ebp + 0x60], 0x4c1872
jmp 0x45dedb
cmp eax, 1
jge 0x45d8da
cmp byte [ebp + 0x2a], 0
jne 0x45d8f5
cmp byte [ebp + 0x13], 0
je 0x45d8c4
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cdq
mov dword [ebp - 0x14], edx
jmp 0x45d8f8
cmp byte [ebp + 6], 0
jg 0x45d8f5
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
shl eax, 1
mov dword [ebp - 0x14], esi
jmp 0x45d8f8
cmp byte [ebp + 0x2a], 0
je 0x45d8f5
cmp dword [ebp - 0x14], edi
jl 0x45d8f5
jg 0x45d8ee
mov eax, dword [ebp - 0x18]
cmp eax, ebx
jbe 0x45d8f8
mov eax, ebx
mov dword [ebp - 0x14], edi
jmp 0x45d8f8
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], esi
jl 0x45e2d4
jg 0x45d90b
cmp eax, esi
jb 0x45e2d4
mov esi, eax
mov eax, dword [ebp + 0x30]
and ax, 0x81
xor ebx, ebx
cmp al, 0x81
jne 0x45dfef
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp + 0x60]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x4c]
call fcn.00410d4d
test eax, eax
je 0x45e2fd
test byte [eax + 0x17], 0xc0
je 0x45e311
and dword [eax + 4], ebx
jmp 0x45e311
xor edi, edi
cmp dword [ebp + 0x30], edi
je 0x45dee2
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x40], edi
xor ecx, ecx
jmp 0x45d979
cmp cx, 0x2c
je 0x45d986
cmp cx, 0x3b
je 0x45d986
cmp cx, 0x3a
je 0x45d986
cmp cx, 0x7c
je 0x45d986
inc eax
inc eax
mov cx, word [eax]
cmp cx, di
mov dword [ebp + 0x24], eax
jne 0x45d95f
jmp 0x45d995
mov cx, word [eax]
mov word [eax], di
inc eax
inc eax
mov word [ebp + 0x40], cx
mov dword [ebp + 0x24], eax
mov ecx, dword [ebp + 0xc]
push edi
push 0x2c
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.004398a4
mov ecx, dword [ebp - 0x10]
push edi
push 0xffffffffffffffff
push edi
push dword [ebp + 0x44]
call fcn.00410d4d
cmp eax, edi
je 0x45e7fe
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 0x45da24
push dword [ebp - 0x6c]
mov dword [ebp - 0x14], ebx
push esi
push dword [ebp + 0xc]
call fcn.0044749d
mov eax, dword [ebp + 0x4c]
add esp, 0xc
cmp word [eax], bx
je 0x45e346
push dword [edi]
push str.0x_p
lea eax, [ebp - 0x15c]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0x15c]
add esp, 0xc
push eax
mov dword [ebp + 0x60], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
shl esi, 1
jmp 0x45dedb
cmp ecx, 4
jne 0x45db57
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00410d4d
cmp word [ebp + 0x40], 0
mov edi, eax
jne 0x45e396
test edi, edi
je 0x45dfef
test byte [edi + 0x17], 0xc0
je 0x45dfef
mov eax, dword [ebp + 0x60]
mov dword [ebp + 8], eax
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x54], ebx
cmp dword [ebp - 0x8c], 0
mov ecx, dword [ebp + 0x50]
mov dword [ebp + 0x78], ecx
jle 0x45da80
and dword [ebp + 0x54], 0
push 4
pop ecx
mov eax, dword [ebp - 0x20]
cdq
mov esi, eax
add esi, ecx
mov ecx, dword [edi + 0x10]
mov ebx, edx
adc ebx, dword [ebp + 0x54]
xor edx, edx
test byte [edi + 0x17], 0xc0
mov dword [ebp - 0x4c], ecx
je 0x45daad
cmp ebx, edx
jl 0x45daad
jg 0x45e29a
cmp esi, ecx
ja 0x45e29a
mov eax, esi
sub eax, ecx
mov ecx, ebx
sbb ecx, edx
mov dword [ebp - 0xe0], ecx
js 0x45db0d
jg 0x45dac3
test eax, eax
jbe 0x45db0d
push 0
mov eax, esi
add eax, 1
mov ecx, ebx
push 2
adc ecx, 0
push ecx
push eax
call fcn.004adb00
add eax, 2
lea ecx, [edi + 4]
push eax
mov dword [ebp - 0xe0], edx
mov dword [ebp + 0x7c], eax
call fcn.00444e77
mov eax, dword [ebp + 0x7c]
add eax, eax
sub eax, dword [ebp - 0x4c]
push eax
mov eax, dword [edi + 4]
add eax, dword [ebp - 0x4c]
push 0
push eax
call fcn.004adaa0
add esp, 0xc
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], ebx
mov edi, dword [edi + 4]
add edi, dword [ebp - 0x20]
xor esi, esi
inc esi
cmp dword [ebp - 0x8c], esi
jl 0x45db46
push 4
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x94]
push eax
push esi
call fcn.00445063
mov eax, dword [eax]
mov edi, dword [edi]
add esp, 0x10
add edi, eax
inc esi
cmp esi, dword [ebp - 0x8c]
jle 0x45db1e
push dword [ebp + 0x78]
push dword [ebp + 8]
push edi
call fcn.00414409
jmp 0x45e4a5
cmp ecx, 0x100
jne 0x45ddbe
mov ecx, dword [ebp + 0x18]
xor edi, edi
push edi
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00410d4d
or dword [ebp - 8], 0xffffffff
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], edi
mov edi, dword [eax + 0x10]
xor eax, eax
mov dword [ebp - 0x118], eax
mov dword [ebp + 8], eax
mov dword [ebp - 0xd8], eax
mov dword [ebp + 0x38], eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp + 0x24]
push eax
mov dword [ebp - 0xc], 0xfffffff8
call fcn.00405bc5
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.00405bc5
and dword [ebp + 0x40], 0
add esp, 0x10
cmp dword [ebp - 8], 0
jg 0x45dbe6
jl 0x45dbd9
cmp dword [ebp - 0xc], 0
jae 0x45dbe6
mov dword [ebp + 0x40], 1
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], ebx
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.00405bc5
mov eax, dword [ebp + 0x24]
movzx eax, word [eax]
pop ecx
pop ecx
mov ecx, eax
or ecx, 0x20
cmp cx, 0x73
je 0x45dc0c
cmp cx, 0x69
jne 0x45dc21
mov ecx, eax
xor ecx, 0x20
test ax, ax
mov dword [ebp + 8], eax
mov dword [ebp - 0xd8], ecx
jne 0x45dc2b
jmp 0x45dc27
mov ecx, dword [ebp - 0xd8]
and dword [ebp + 0x40], 0
xor eax, eax
cmp dword [ebp - 0x30], eax
jl 0x45e29a
jg 0x45dc41
cmp dword [ebp - 0x34], eax
jb 0x45e29a
cmp dword [ebp - 0x28], eax
jl 0x45e29a
jg 0x45dc55
cmp dword [ebp - 0x2c], eax
jb 0x45e29a
cmp dword [ebp - 8], eax
jl 0x45e29a
jg 0x45dc69
cmp dword [ebp - 0xc], eax
jbe 0x45e29a
cmp dword [ebp - 0x28], ebx
jg 0x45e29a
jl 0x45dc7d
cmp dword [ebp - 0x2c], esi
ja 0x45e29a
mov eax, dword [ebp - 0x118]
cmp dword [ebp - 0x30], eax
jg 0x45e29a
jl 0x45dc97
cmp dword [ebp - 0x34], edi
ja 0x45e29a
cmp dword [ebp + 0x40], 0
jne 0x45dce3
sub esi, dword [ebp - 0x2c]
sbb ebx, dword [ebp - 0x28]
sub edi, dword [ebp - 0x34]
sbb eax, dword [ebp - 0x30]
cmp eax, ebx
jl 0x45dcb7
jg 0x45dcb3
cmp edi, esi
jbe 0x45dcb7
mov edi, esi
mov eax, ebx
cmp dword [ebp - 8], eax
jl 0x45dcc9
jg 0x45dcc3
cmp dword [ebp - 0xc], edi
jbe 0x45dcc9
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], eax
test cl, 0x20
je 0x45dce3
push 0
push 2
push dword [ebp - 8]
push dword [ebp - 0xc]
call fcn.004adb00
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0
jl 0x45ddaf
jg 0x45dcf9
cmp dword [ebp - 0xc], 0
jbe 0x45ddaf
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp + 0x60]
mov eax, dword [eax + 4]
add eax, dword [ebp - 0x34]
add ecx, edx
mov edx, dword [ebp + 8]
cmp dx, 0x73
jne 0x45dd36
cmp dword [ebp + 0x40], 0
je 0x45dd29
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
jmp 0x45ddac
push dword [ebp - 0xc]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNA]
jmp 0x45ddac
cmp dx, 0x53
jne 0x45dd59
cmp dword [ebp + 0x40], 0
je 0x45dd4c
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
jmp 0x45ddac
push dword [ebp - 0xc]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
jmp 0x45ddac
cmp dx, 0x69
jne 0x45dd7c
cmp dword [ebp + 0x40], 0
je 0x45dd6f
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x45ddac
push dword [ebp - 0xc]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNIA]
jmp 0x45ddac
cmp dx, 0x49
jne 0x45dd9f
cmp dword [ebp + 0x40], 0
je 0x45dd92
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
jmp 0x45ddac
push dword [ebp - 0xc]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
jmp 0x45ddac
push dword [ebp - 0xc]
push ecx
push eax
call fcn.0043e718
add esp, 0xc
mov dword [ebp + 0x38], eax
movsx eax, word [ebp + 0x38]
push eax
push 0x4c12a0
jmp 0x45d9fb
cmp ecx, 1
jne 0x45de66
xor ebx, ebx
push ebx
push 5
push ebx
shr esi, 1
push esi
call fcn.004adbb0
mov edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp - 0xe0], edx
call fcn.00444d00
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 - 0x48], edx
jg 0x45de12
jl 0x45de0b
cmp esi, ebx
jae 0x45de12
xor esi, esi
mov dword [ebp - 0x48], ebx
jmp 0x45de27
mov eax, dword [ebp - 0xe0]
cmp edx, eax
jl 0x45de27
jg 0x45de22
cmp esi, edi
jbe 0x45de27
mov esi, edi
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 0x58]
mov ecx, dword [ebp - 0x48]
mov byte [eax + esi], 0
push ebx
mov eax, esi
add eax, 1
push 2
adc ecx, ebx
push ecx
push eax
call fcn.004adb00
mov edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.00444e77
mov eax, dword [ebp + 0x58]
mov word [eax + edi*2], bx
mov ebx, dword [ebp - 0x48]
mov byte [ebp + 0x73], 1
mov dword [ebp + 0x60], eax
jmp 0x45dfef
cmp ecx, 2
jne 0x45debe
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp - 0xb4], ebx
call fcn.00444e77
push esi
push dword [ebp + 0x58]
xor edi, edi
push esi
push dword [ebp + 0x60]
push edi
push edi
call dword [0x4dbbe4]
mov esi, eax
cmp esi, edi
jge 0x45de97
xor esi, esi
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.00444e77
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 0x45dfef
cmp ecx, 0x20
jne 0x45eae8
mov ecx, dword [edi]
mov dword [ebp + 0x60], ecx
mov esi, dword [eax]
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0xc0], eax
mov byte [ebp + 0x73], 1
xor ebx, ebx
jmp 0x45dfef
cmp byte [ebp + 0x67], 0
je 0x45df11
mov eax, dword [ebp + 0x60]
cmp word [eax], di
je 0x45df11
xor ecx, ecx
mov cl, byte [ebp - 0xa4]
or cl, byte [ebp + 0x67]
push ecx
push eax
lea ecx, [ebp + 0x44]
call fcn.0044e6d5
mov ecx, dword [ebp - 0x10]
push eax
call fcn.0045c666
mov dword [ebp + 0x60], eax
mov eax, dword [ebp - 0x98]
dec eax
cmp eax, edi
jl 0x45df3b
lea edi, [eax + 1]
mov ecx, dword [ebp - 0x10]
push 0
push 0
lea eax, [ebp + 0x3c]
push eax
push dword [ebp + 0x60]
call fcn.0045522d
dec edi
mov eax, dword [ebp + 0x3c]
mov dword [ebp + 0x60], eax
jne 0x45df1f
mov eax, dword [ebp + 0x60]
xor edi, edi
cmp word [eax], di
je 0x45df62
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0x78]
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0045bd15
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
add esp, 0x10
mov ecx, dword [ebp + 0x60]
cmp ecx, dword [ebp + 0x58]
sete byte [ebp + 0x73]
xor eax, eax
cmp eax, edi
jg 0x45e4ad
jl 0x45df81
cmp dword [ebp + 0x1c], edi
ja 0x45e4ad
cmp dword [ebp + 0x54], edi
jg 0x45e7f0
jl 0x45df95
cmp dword [ebp + 0x50], edi
ja 0x45e7f0
cmp byte [ebp + 0x4b], 0
je 0x45dfdf
cmp ebx, edi
jl 0x45e505
jg 0x45dfad
cmp esi, edi
jbe 0x45e505
mov edi, 0x4dcd58
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00410d4d
test eax, eax
mov dword [ebp + 8], eax
jne 0x45e9cf
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x45dfef
cmp byte [ebp + 0x37], 0
je 0x45dfef
cmp byte [ebp + 0x2b], 0
je 0x45eaae
xor eax, eax
cmp dword [ebp - 0x24], eax
mov dword [ebp + 8], eax
je 0x45e027
cmp byte [ebp + 0x7c], al
jne 0x45e027
mov ecx, dword [ebp + 0x18]
test byte [ecx + 9], 0xf
jne 0x45e027
cmp byte [ebp + 0x73], al
jne 0x45e027
cmp dword [ebp - 0x58], eax
jge 0x45e027
cmp byte [ebp + 0x37], al
jne 0x45e027
push dword [ebp + 0x60]
push dword [ebp + 0x4c]
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
jmp 0x45e231
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00410d4d
mov edi, eax
test edi, edi
mov dword [ebp - 0xb4], edi
jne 0x45e0a5
cmp dword [ebp - 0x58], eax
jge 0x45e099
cmp byte [ebp + 0x73], al
je 0x45e059
xor ecx, ecx
mov dword [ebp - 0xd8], ecx
jmp 0x45e061
mov ecx, esi
mov dword [ebp - 0xd8], ebx
cmp byte [ebp + 0x73], 0
mov eax, 0x4c0a1c
jne 0x45e06f
mov eax, dword [ebp + 0x60]
push ecx
mov ecx, dword [ebp + 0x18]
push 0xffffffffffffffff
push eax
push dword [ebp + 0x4c]
call fcn.0041500d
cmp dword [ebp - 0x80], 0
mov edi, eax
je 0x45e095
test edi, edi
je 0x45e099
push dword [ebp - 0x80]
lea ecx, [edi + 8]
call fcn.0044e731
test edi, edi
jne 0x45e0a5
mov dword [ebp + 8], 1
jmp 0x45e231
cmp dword [ebp - 0x58], 0
jl 0x45e1b7
mov cl, byte [ebp - 0x40]
mov esi, dword [edi + 0x10]
xor edx, edx
inc edx
shl edx, cl
mov eax, esi
sub eax, dword [ebp - 0x60]
xor ecx, ecx
cmp dword [ebp - 0x38], ecx
ja 0x45e0d5
jb 0x45e0cd
cmp dword [ebp - 0x3c], eax
ja 0x45e0d5
mov ebx, dword [ebp - 0x3c]
or ebx, dword [ebp - 0x38]
jne 0x45e0db
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], ecx
mov edi, dword [edi + 4]
add edi, dword [ebp - 0x60]
xor eax, eax
mov ecx, edi
sub ecx, edx
add ecx, dword [ebp - 0x3c]
cmp dword [ebp - 0x5c], eax
ja 0x45e231
jb 0x45e0fe
cmp dword [ebp - 0x60], esi
jae 0x45e231
cmp dword [ebp - 0x38], 0
ja 0x45e10e
cmp dword [ebp - 0x3c], 0
jbe 0x45e231
cmp edx, 2
jb 0x45e1a6
xor eax, eax
cmp dword [ebp - 0x38], eax
jb 0x45e231
ja 0x45e12d
cmp dword [ebp - 0x3c], edx
jb 0x45e231
cmp edx, 2
jne 0x45e15b
cmp edi, ecx
ja 0x45e231
mov eax, dword [ebp - 4]
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 0x45e231
cmp edx, 4
jne 0x45e178
cmp edi, ecx
ja 0x45e231
mov eax, dword [ebp - 4]
sub ecx, edi
shr ecx, 2
inc ecx
rep stosd dword es:[edi], eax
jmp 0x45e231
cmp edx, 8
jne 0x45e1a6
cmp edi, ecx
ja 0x45e231
mov eax, dword [ebp - 4]
sub ecx, edi
mov dword [edi], eax
mov eax, dword [ebp]
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 0x45e231
push dword [ebp - 0x3c]
push dword [ebp - 4]
push edi
call fcn.004adaa0
add esp, 0xc
jmp 0x45e231
cmp byte [ebp + 0x37], 0
jne 0x45e231
mov ecx, dword [ebp - 0xb4]
test ecx, ecx
je 0x45e1f6
mov al, byte [ecx + 0x17]
and al, 0xc0
cmp al, 0xc0
jne 0x45e1ee
cmp byte [ebp + 0x73], 0
je 0x45e1de
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
mov dword [ebp + 0x60], eax
push ebx
push esi
push dword [ebp + 0x60]
push edi
call fcn.0043ee7d
add esp, 0x10
jmp 0x45e231
test al, al
je 0x45e1f6
and dword [ecx + 4], 0
cmp byte [ebp + 0x73], 0
je 0x45e222
mov ecx, dword [edi + 0x10]
mov eax, dword [ebp - 0xc0]
mov dword [eax], ecx
mov ecx, dword [edi + 0x14]
mov dword [eax + 4], ecx
mov edx, dword [edi + 4]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx]
mov dword [ecx], edx
mov dword [edi + 4], eax
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], ebx
jmp 0x45e231
test ecx, ecx
je 0x45e231
push esi
push dword [ebp + 0x60]
mov ecx, edi
call fcn.00402e7e
lea ecx, [ebp + 0x58]
call fcn.0043e679
lea ecx, [ebp + 0x44]
call fcn.0043e679
lea ecx, [ebp + 0x3c]
call fcn.0043e679
cmp dword [ebp - 0x68], 0
jle 0x45eb21
mov esi, dword [ebp - 0xd4]
push dword [ebp - 0x74]
mov eax, dword [ebp - 0xc4]
push dword [ebp - 0xc8]
dec dword [ebp - 0x68]
push eax
mov dword [ebp + 0x4c], eax
call fcn.004417ed
push dword [ebp - 0x70]
mov dword [ebp + 0x60], esi
push dword [ebp - 0xcc]
push esi
call fcn.004417ed
mov eax, dword [ebp - 0x84]
add dword [ebp - 0x74], eax
add esp, 0x18
add dword [ebp - 0x70], eax
jmp 0x45d4e7
lea ecx, [ebp + 0x58]
call fcn.0043e679
lea ecx, [ebp + 0x44]
call fcn.0043e679
lea ecx, [ebp + 0x3c]
call fcn.0043e679
lea ecx, [ebp + 0x5c]
call fcn.0043e679
mov eax, 0x4dcd58
test eax, eax
je 0x45e2ca
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x45eb3c
lea ecx, [ebp + 0x58]
call fcn.0043e679
lea ecx, [ebp + 0x44]
call fcn.0043e679
lea ecx, [ebp + 0x3c]
call fcn.0043e679
lea ecx, [ebp + 0x5c]
call fcn.0043e679
mov eax, 0x4dcd58
cmp eax, esi
jmp 0x45e2c1
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push 0x4c0a1c
push dword [ebp + 0x4c]
call fcn.0041500d
xor ecx, ecx
cmp dword [ebp + 0x30], 0x83
mov edx, 0xc0000000
je 0x45e326
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.0043e679
jmp 0x45eae8
mov eax, dword [ebp - 0x6c]
mov si, word [eax]
neg si
lea ecx, [ebp + 0x58]
sbb esi, esi
and esi, 0x7ff8ffa9
add esi, 0x80070057
call fcn.0043e679
lea ecx, [ebp + 0x44]
call fcn.0043e679
lea ecx, [ebp + 0x3c]
call fcn.0043e679
lea ecx, [ebp + 0x5c]
call fcn.0043e679
mov eax, 0x4dcd58
test eax, eax
je 0x45eb3c
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x45eb3c
mov ecx, dword [edi + 0x10]
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp + 0x20], eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp + 0x24]
push eax
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], ebx
mov dword [ebp + 0x1c], ecx
call fcn.00405bc5
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.00405bc5
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.00405bc5
add esp, 0x18
cmp dword [ebp - 0x30], 0
jl 0x45e29a
jg 0x45e3f3
cmp dword [ebp - 0x34], 0
jb 0x45e29a
cmp dword [ebp - 0x28], 0
jl 0x45e29a
jg 0x45e409
cmp dword [ebp - 0x2c], 0
jbe 0x45e29a
cmp dword [ebp - 0x30], ebx
jg 0x45e29a
jl 0x45e41d
cmp dword [ebp - 0x34], esi
ja 0x45e29a
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp + 0x20]
jg 0x45e29a
mov ecx, dword [ebp - 0x4c]
jl 0x45e437
cmp ecx, dword [ebp + 0x1c]
ja 0x45e29a
test eax, eax
jg 0x45e445
jl 0x45e441
test ecx, ecx
jae 0x45e445
xor ecx, ecx
xor eax, eax
sub esi, dword [ebp - 0x34]
sbb ebx, dword [ebp - 0x30]
sub dword [ebp + 0x1c], ecx
sbb dword [ebp + 0x20], eax
mov eax, dword [ebp - 0x28]
cmp eax, ebx
jl 0x45e464
jg 0x45e45f
cmp dword [ebp - 0x2c], esi
jbe 0x45e464
mov dword [ebp - 0x2c], esi
mov eax, ebx
cmp eax, dword [ebp + 0x20]
jl 0x45e47b
jg 0x45e473
mov edx, dword [ebp - 0x2c]
cmp edx, dword [ebp + 0x1c]
jbe 0x45e47e
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
jmp 0x45e47e
mov edx, dword [ebp - 0x2c]
test eax, eax
jl 0x45eae8
jg 0x45e490
test edx, edx
jbe 0x45eae8
mov eax, dword [ebp + 0x60]
push edx
mov edx, dword [ebp - 0x34]
add edx, eax
mov eax, dword [edi + 4]
push edx
add eax, ecx
push eax
call fcn.004143bf
add esp, 0xc
jmp 0x45eae8
cmp dword [ebp + 0x1c], 0x2a
jne 0x45e4bb
cmp eax, edi
je 0x45e7fe
cmp dword [ebp - 0x8c], edi
mov eax, dword [ebp + 0x50]
mov dword [ebp - 0xb4], eax
jle 0x45e4d6
mov dword [ebp + 0x50], 4
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x14], ecx
lea ecx, [ebp + 0x7c]
call fcn.00444e32
mov ecx, dword [ebp + 0xc]
push 0x2c
push 0x3a
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x14]
push eax
call fcn.004398a4
mov eax, dword [ebp + 0x7c]
cmp word [eax], di
jne 0x45e531
lea ecx, [ebp + 0x7c]
call fcn.0043e679
lea ecx, [ebp + 0x58]
call fcn.0043e679
lea ecx, [ebp + 0x44]
call fcn.0043e679
lea ecx, [ebp + 0x3c]
call fcn.0043e679
lea ecx, [ebp + 0x5c]
call fcn.0043e679
mov eax, 0x4dcd58
cmp eax, edi
jmp 0x45eb0f
mov eax, dword [ebp + 0x14]
xor bl, bl
cmp word [eax], 0x7e
jne 0x45e543
add dword [ebp + 0x14], 2
mov bl, byte [ebp + 0x50]
push dword [ebp + 0xc]
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x14]
push eax
mov dword [ebp - 4], edi
mov dword [ebp], edi
call fcn.00451b1d
add esp, 0xc
test bl, bl
je 0x45e577
push dword [ebp]
movsx eax, bl
push dword [ebp - 4]
cdq
push edx
push eax
call fcn.004adbb0
mov dword [ebp - 4], eax
mov dword [ebp], edx
mov eax, dword [ebp - 4]
add dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
cdq
mov ebx, eax
add ebx, dword [ebp + 0x50]
mov eax, dword [ebp - 0x64]
mov esi, edx
adc esi, dword [ebp + 0x54]
xor edi, edi
cmp eax, edi
mov word [ebp - 0x1fc], di
mov dword [ebp - 4], edi
mov dword [ebp], edi
jle 0x45e5a8
mov ecx, dword [ebp + 0x4c]
mov word [ecx + eax*2], di
mov ecx, dword [ebp + 0x4c]
mov ax, word [ecx]
call fcn.004449cb
test al, al
je 0x45e5e0
and dword [ebp + 0x78], 0
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp + 0x70]
push eax
mov dword [ebp + 0x70], ecx
call fcn.00441162
mov edi, dword [ebp + 0x78]
mov eax, 0x7fffffff
sub eax, edi
cdq
pop ecx
pop ecx
mov dword [ebp - 4], eax
mov dword [ebp], edx
jmp 0x45e601
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push ecx
mov ecx, dword [ebp + 0x18]
call fcn.00410d4d
test eax, eax
je 0x45e601
mov ecx, dword [eax + 0x10]
and dword [ebp], 0
mov edi, dword [eax + 4]
mov dword [ebp - 4], ecx
cmp dword [ebp], esi
mov dword [ebp + 0x78], 1
jl 0x45e79e
jg 0x45e61c
cmp dword [ebp - 4], ebx
jb 0x45e79e
and dword [ebp + 0x78], 0
add edi, dword [ebp - 0x20]
xor esi, esi
inc esi
cmp dword [ebp - 0x8c], esi
jl 0x45e656
push 4
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x94]
push eax
push esi
call fcn.00445063
mov eax, dword [eax]
mov edi, dword [edi]
add esp, 0x10
add edi, eax
inc esi
cmp esi, dword [ebp - 0x8c]
jle 0x45e62e
push dword [ebp - 0xb4]
lea eax, [ebp - 0x114]
push edi
push eax
call fcn.00414409
xor edx, edx
add esp, 0xc
cmp dword [ebp - 0x78], edx
je 0x45e696
fld dword [ebp - 0x114]
push 0x4c9e98
push ecx
lea eax, [ebp - 0x1fc]
fstp dword [esp]
push eax
call fcn.0049b7ca
add esp, 0xc
jmp 0x45e79e
cmp dword [ebp - 0x88], edx
je 0x45e6bf
fld qword [ebp - 0x114]
push 0x4c9448
push ecx
push ecx
lea eax, [ebp - 0x1fc]
fstp qword [esp]
push eax
call fcn.0049b7f3
jmp 0x45e79b
cmp dword [ebp - 0x7c], edx
je 0x45e6e5
fld qword [ebp - 0x114]
push 0x4c9448
push ecx
push ecx
lea eax, [ebp - 0x1fc]
fstp qword [esp]
push eax
call fcn.0049b7f3
jmp 0x45e79b
cmp dword [ebp + 0x1c], 0x64
jne 0x45e6fe
xor eax, eax
cmp eax, edx
jne 0x45e6fe
push dword [ebp - 0x114]
push str.0x_p
jmp 0x45e743
mov ecx, dword [ebp - 0xac]
cmp ecx, 1
jne 0x45e719
xor eax, eax
cmp eax, edx
jne 0x45e719
movsx eax, byte [ebp - 0x114]
push eax
jmp 0x45e73e
cmp ecx, 2
jne 0x45e72d
xor eax, eax
cmp eax, edx
jne 0x45e72d
movsx eax, word [ebp - 0x114]
jmp 0x45e716
cmp ecx, 4
jne 0x45e755
xor eax, eax
cmp eax, edx
jne 0x45e755
push dword [ebp - 0x114]
push 0x4c12a0
lea eax, [ebp - 0x1fc]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
jmp 0x45e68e
cmp ecx, 8
jne 0x45e780
xor eax, eax
cmp eax, edx
jne 0x45e780
push dword [ebp - 0x110]
lea eax, [ebp - 0x1fc]
push dword [ebp - 0x114]
push str._I64d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
jmp 0x45e79b
push dword [ebp + 0x2c]
lea eax, [ebp - 0x1fc]
push dword [ebp - 0x110]
push dword [ebp - 0x114]
push eax
call fcn.0049b74b
add esp, 0x10
mov ecx, dword [ebp + 0x18]
lea eax, [ebp - 0x1fc]
push eax
push dword [ebp + 0x7c]
call fcn.0044451e
lea ecx, [ebp + 0x7c]
call fcn.0043e679
lea ecx, [ebp + 0x58]
call fcn.0043e679
lea ecx, [ebp + 0x44]
call fcn.0043e679
lea ecx, [ebp + 0x3c]
call fcn.0043e679
lea ecx, [ebp + 0x5c]
call fcn.0043e679
mov eax, 0x4dcd58
test eax, eax
je 0x45e7e8
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp + 0x78]
jmp 0x45eb3c
cmp dword [ebp + 0x50], 0x2a
mov dword [ebp - 0x1c], edi
jne 0x45e82a
cmp dword [ebp + 0x54], edi
jne 0x45e82a
lea ecx, [ebp + 0x58]
call fcn.0043e679
lea ecx, [ebp + 0x44]
call fcn.0043e679
lea ecx, [ebp + 0x3c]
call fcn.0043e679
lea ecx, [ebp + 0x5c]
call fcn.0043e679
mov eax, 0x4dcd58
cmp eax, edi
jmp 0x45e2c1
cmp word [ecx], 0x26
mov dword [ebp + 0x70], ecx
mov byte [ebp + 0x7b], 0
mov byte [ebp + 0x7f], 1
jne 0x45e882
push 0x3a
lea eax, [ebp + 0x70]
mov byte [ebp + 0x7f], 0
mov ebx, ecx
call fcn.00405b85
mov eax, dword [ebp + 0x70]
mov si, word [eax]
cmp si, di
pop ecx
je 0x45e85a
mov word [eax], di
mov ecx, dword [ebp + 0xc]
push edi
push 0xffffffffffffffff
push edi
push ebx
call fcn.00410d4d
cmp si, di
je 0x45e872
mov ecx, dword [ebp + 0x70]
mov word [ecx], si
cmp eax, edi
je 0x45e882
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
fstp qword [ebp - 0x54]
cmp dword [ebp - 0x78], edi
je 0x45e8a7
cmp byte [ebp + 0x7f], 0
je 0x45e89c
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.00447f0a
pop ecx
pop ecx
fld qword [ebp - 0x54]
fstp dword [ebp - 0x114]
jmp 0x45e902
cmp dword [ebp - 0x88], edi
je 0x45e8cf
cmp byte [ebp + 0x7f], 0
je 0x45e8c4
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.00447f0a
pop ecx
pop ecx
fld qword [ebp - 0x54]
fstp qword [ebp - 0x114]
jmp 0x45e902
cmp dword [ebp - 0x7c], edi
jne 0x45e8af
cmp byte [ebp + 0x7f], 0
je 0x45e8f2
push dword [ebp + 0xc]
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.00451b1d
add esp, 0xc
jmp 0x45e902
mov eax, dword [ebp - 0x1c]
cdq
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x110], edx
mov eax, dword [ebp + 0x70]
cmp word [eax], di
je 0x45e95e
add dword [ebp + 0x70], 2
mov eax, dword [ebp + 0x70]
cmp word [eax], 0x7e
jne 0x45e921
mov al, byte [ebp + 0x50]
add dword [ebp + 0x70], 2
mov byte [ebp + 0x7b], al
push dword [ebp + 0xc]
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 0x70]
push eax
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x50], edi
call fcn.00451b1d
add esp, 0xc
cmp byte [ebp + 0x7b], 0
je 0x45e958
push dword [ebp - 0x50]
movsx eax, byte [ebp + 0x7b]
push dword [ebp - 0x54]
cdq
push edx
push eax
call fcn.004adbb0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x54]
add dword [ebp - 0x20], eax
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00410d4d
mov edi, eax
test edi, edi
jne 0x45da6a
mov ecx, dword [ebp + 0x18]
push eax
push 0xffffffffffffffff
push 0x4c0a1c
push dword [ebp + 0x4c]
call fcn.0041500d
mov edi, eax
test edi, edi
jne 0x45da6a
lea ecx, [ebp + 0x58]
call fcn.0043e679
lea ecx, [ebp + 0x44]
call fcn.0043e679
lea ecx, [ebp + 0x3c]
call fcn.0043e679
lea ecx, [ebp + 0x5c]
call fcn.0043e679
mov eax, 0x4dcd58
test eax, eax
je 0x45e9c7
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor esi, esi
inc esi
jmp 0x45eb3c
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x60], eax
mov eax, dword [edi + 0x14]
add edi, 4
mov edx, dword [edi]
xor ecx, ecx
test eax, eax
mov dword [ebp + 0x78], edx
jg 0x45ea58
jl 0x45e9f0
cmp dword [ebp - 0x60], ecx
jae 0x45ea58
and dword [edi], 0
mov byte [ebp + 0x7f], 1
mov eax, dword [ebp - 0x60]
add eax, esi
push 0
adc ecx, ebx
push 2
push ecx
push eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], ecx
call fcn.004adb00
mov ebx, eax
lea eax, [ebx + 2]
push eax
mov ecx, edi
mov dword [ebp - 0xe0], edx
call fcn.00444e77
mov ecx, dword [edi]
lea eax, [ebx + ebx]
and word [ecx + eax + 2], 0
mov ecx, dword [edi]
and word [eax + ecx], 0
cmp byte [ebp + 0x4b], 1
mov edi, dword [edi]
jne 0x45ea5e
cmp byte [ebp + 0x7f], 0
je 0x45ea51
push dword [ebp - 0x60]
push dword [ebp + 0x78]
push edi
call fcn.00414409
add esp, 0xc
mov eax, dword [ebp - 0x60]
add edi, eax
jmp 0x45ea85
mov byte [ebp + 0x7f], 0
jmp 0x45e9f7
cmp byte [ebp + 0x4b], 2
jne 0x45ea92
cmp byte [ebp + 0x7f], 0
push dword [ebp - 0x60]
lea eax, [edi + esi]
je 0x45ea7b
push dword [ebp + 0x78]
push eax
call fcn.00414409
jmp 0x45ea82
push edi
push eax
call fcn.004143bf
add esp, 0xc
push esi
push dword [ebp + 0x60]
push edi
call fcn.00414409
add esp, 0xc
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x4c]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x48]
push 0x4dcd58
mov dword [eax + 0x14], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x45eae8
mov ecx, dword [ebp + 0x18]
xor edi, edi
push edi
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00410d4d
mov esi, eax
cmp esi, edi
je 0x45eae8
test byte [esi + 0x17], 0xc0
je 0x45ead5
mov eax, dword [esi + 4]
mov word [eax], di
jmp 0x45eae8
push 0x4c0a1c
lea ecx, [esi + 4]
call fcn.0044e6d5
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
lea ecx, [ebp + 0x58]
call fcn.0043e679
lea ecx, [ebp + 0x44]
call fcn.0043e679
lea ecx, [ebp + 0x3c]
call fcn.0043e679
lea ecx, [ebp + 0x5c]
call fcn.0043e679
mov eax, 0x4dcd58
test eax, eax
je 0x45d3fa
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x45d3fa
lea ecx, [ebp + 0x5c]
call fcn.0043e679
mov eax, 0x4dcd58
test eax, eax
je 0x45eb39
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x6c]
call fcn.0043e679
pop edi
lea ecx, [ebp - 0xb0]
call fcn.0043e679
lea ecx, [ebp - 0x94]
call fcn.0043e679
mov eax, esi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10