Function at 0x4b69b0
Capabilities:
Check http status code
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x38c
push ebx
push esi
mov esi, dword [ebp + 8]
xor eax, eax
push edi
mov dword [esp + 0x3c], 0x10
mov ebx, dword [esi + 0x65b4]
mov dword [esp + 0x34], eax
cmp ebx, 0xa
mov dword [esp + 0x40], eax
mov byte [esp + 0x20], al
mov byte [esp + 0x21], 1
mov byte [esp + 0x22], 2
mov byte [esp + 0x23], 3
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], 0x3ff00000
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], 0x3ff00000
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], 0x3ff00000
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], 0x3ff00000
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 0x3ff00000
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], 0x3ff00000
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 0x3ff00000
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], 0xfff
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
jb 0x4b6ad3
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [ebx + 1]
mov dword [esp + 0x44], ebx
mov dword [esi + 0x65b4], ecx
xor edi, edi
lea ecx, [esp + 0x158]
jmp 0x4b6aed
xor eax, eax
xor edx, edx
cmp eax, edi
sete dl
mov dword [esp + 0x30], edx
inc eax
fild dword [esp + 0x30]
add ecx, 8
cmp eax, 4
fstp qword [ecx - 8]
jl 0x4b6aed
inc edi
cmp edi, 4
jl 0x4b6aeb
push esi
call fcn.004a68b0
and eax, 0xffff
add esp, 4
cmp eax, 0x200
jbe 0x4b6b2f
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, eax
dec eax
test ecx, ecx
mov dword [esp + 0x30], eax
je 0x4b7fdd
jmp 0x4b6b44
mov ebx, dword [esp + 0x44]
mov edi, dword [ebp + 0xc]
lea edx, [esp + 0x68]
lea eax, [esp + 0x18]
push edx
lea ecx, [esp + 0x18]
push eax
lea edx, [esp + 0x40]
push ecx
push edx
push edi
push esi
call fcn.004b4ae0
mov eax, dword [esp + 0x50]
add esp, 0x18
cmp eax, 0x827d
ja 0x4b735a
je 0x4b7340
cmp eax, 0x117
ja 0x4b6e8c
je 0x4b7160
cmp eax, 0x102
ja 0x4b6d9e
je 0x4b6d72
cmp eax, 0x26
ja 0x4b6c5d
cmp eax, 0x24
jae 0x4b6c37
add eax, 0xfffffffe
cmp eax, 0x15
ja case.0x4b6eb3.299
xor ecx, ecx
mov cl, byte [eax + 0x4b815c]
jmp dword [ecx*4 + 0x4b8148]
cmp dword [esp + 0x14], 3
jne case.0x4b6eb3.299
cmp dword [esp + 0x18], 1
jne case.0x4b6eb3.299
push esi
call fcn.004a68b0
add esp, 4
and eax, 0xffff
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x38]
fild dword [esp + 0x10]
fmul dword [0x574c24]
fstp dword [esi + edx*8 + 0xe634]
jmp case.0x4b6eb3.299
cmp dword [esp + 0x14], 3
jne case.0x4b6eb3.299
push esi
call fcn.004a68b0
add esp, 4
and eax, 0xffff
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp dword [esi + 0x6560]
jmp case.0x4b6eb3.299
push esi
call fcn.004a68b0
add esp, 4
and eax, 0xffff
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
fild dword [esp + 0x10]
fstp dword [esi + eax*4 + 0xe62c]
jmp case.0x4b6eb3.299
add eax, 0xffffffd9
cmp eax, 0xda
ja case.0x4b6eb3.299
xor ecx, ecx
mov cl, byte [eax + 0x4b8188]
jmp dword [ecx*4 + 0x4b8174]
cmp dword [esp + 0x18], 0x32
jb case.0x4b6eb3.299
fld dword [esi + 0xe6bc]
fcomp dword [0x5565c4]
lea edi, [esi + 0xe6bc]
fnstsw ax
test ah, 0x40
je case.0x4b6eb3.299
mov eax, dword [esi + 4]
mov edx, dword [esi]
push 1
push 0xc
push eax
call dword [edx + 8]
add esp, 0xc
mov ebx, 3
push esi
call fcn.004a68b0
and eax, 0xffff
add esp, 4
mov dword [esp + 0x10], eax
add edi, 4
fild dword [esp + 0x10]
dec ebx
fstp dword [edi - 4]
jne 0x4b6cb7
jmp case.0x4b6eb3.299
cmp dword [esp + 0x14], 7
jne case.0x4b6eb3.299
mov edx, dword [esi + 4]
mov ecx, dword [esi]
push edx
call dword [ecx + 0x1c]
add esp, 4
cmp eax, 0xff
jne case.0x4b6eb3.299
mov ecx, dword [esi + 4]
mov eax, dword [esi]
push ecx
call dword [eax + 0x1c]
add esp, 4
cmp eax, 0xd8
jne case.0x4b6eb3.299
mov eax, dword [esi + 4]
mov edx, dword [esi]
push eax
call dword [edx + 0x18]
mov ecx, dword [esp + 0x1c]
add esp, 4
sub eax, 2
mov dword [esi + 0x6590], eax
mov dword [esi + 0x659c], ecx
jmp case.0x4b6eb3.299
mov edx, dword [esp + 0x14]
push edx
push esi
call fcn.004a6990
lea ecx, [ebx + ebx*8 + 0x1830]
add esp, 8
mov dword [esi + ecx*4], eax
jmp case.0x4b6eb3.299
mov edx, dword [esp + 0x14]
push edx
push esi
call fcn.004a6990
lea ecx, [ebx + ebx*8]
add esp, 8
mov dword [esi + ecx*4 + 0x60c4], eax
jmp case.0x4b6eb3.299
mov eax, dword [esp + 0x18]
lea edx, [ebx + ebx*8]
and eax, 7
push esi
lea ebx, [esi + edx*4]
mov dword [ebx + 0x60dc], eax
call fcn.004a68b0
add esp, 4
and eax, 0xffff
mov dword [ebx + 0x60c8], eax
jmp case.0x4b6eb3.299
add eax, 0xfffffefd
cmp eax, 0x12
ja case.0x4b6eb3.299
xor ecx, ecx
mov cl, byte [eax + 0x4b8288]
jmp dword [ecx*4 + 0x4b8264]
push esi
call fcn.004a68b0
add esp, 4
lea edx, [ebx + ebx*8]
and eax, 0xffff
mov dword [esi + edx*4 + 0x60cc], eax
jmp case.0x4b6eb3.299
push esi
call fcn.004a68b0
add esp, 4
lea ecx, [ebx + ebx*8]
and eax, 0xffff
mov dword [esi + ecx*4 + 0x60d0], eax
jmp case.0x4b6eb3.299
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push 1
lea eax, [esi + 0x6255]
push 0x200
push eax
push ecx
call dword [edx]
add esp, 0x10
jmp case.0x4b6eb3.299
mov ecx, dword [esi + 4]
mov edx, dword [esi]
lea eax, [esi + 0x6455]
push 0x40
push eax
push ecx
call dword [edx + 0x10]
add esp, 0xc
jmp case.0x4b6eb3.299
mov ecx, dword [esi + 4]
mov edx, dword [esi]
lea eax, [esi + 0x6495]
push 0x40
push eax
push ecx
call dword [edx + 0x10]
add esp, 0xc
jmp case.0x4b6eb3.299
push esi
call fcn.004a68b0
and eax, 7
add esp, 4
movsx edx, byte [eax + str.50132467]
lea eax, [ebx + ebx*8]
sub edx, 0x30
mov dword [esi + eax*4 + 0x60d8], edx
jmp case.0x4b6eb3.299
mov ecx, dword [esp + 0x14]
push ecx
push esi
call fcn.004a6990
add esp, 8
lea edx, [ebx + ebx*8]
and eax, 7
mov dword [esi + edx*4 + 0x60dc], eax
jmp case.0x4b6eb3.299
cmp eax, 0x190
ja 0x4b7130
je 0x4b710a
add eax, 0xfffffedd
cmp eax, 0x27
ja case.0x4b6eb3.299
xor ecx, ecx
mov cl, byte [eax + 0x4b82c0]
jmp dword [ecx*4 + 0x4b829c]
mov ecx, dword [esi + 4]
mov edx, dword [esi]
lea eax, [esp + 0xdc]
push 0x40
push eax
push ecx
call dword [edx + 0x10]
mov edi, dword [sym.imp.MSVCRT.dll_strncmp]
push 5
lea edx, [esp + 0xec]
push str.Adobe
push edx
call edi
add esp, 0x18
test eax, eax
je 0x4b6f78
push 5
lea eax, [esp + 0xe0]
push str.dcraw
push eax
call edi
add esp, 0xc
test eax, eax
je 0x4b6f78
push 6
lea ecx, [esp + 0xe0]
push str.Bibble
push ecx
call edi
add esp, 0xc
test eax, eax
je 0x4b6f78
push 0xa
lea edx, [esp + 0xe0]
push str.Nikon_Scan
push edx
call edi
add esp, 0xc
test eax, eax
je 0x4b6f78
mov edi, str.Digital_Photo_Professional
lea eax, [esp + 0xdc]
mov dl, byte [eax]
mov bl, byte [edi]
mov cl, dl
cmp dl, bl
jne 0x4b6f6b
test cl, cl
je 0x4b6f67
mov dl, byte [eax + 1]
mov bl, byte [edi + 1]
mov cl, dl
cmp dl, bl
jne 0x4b6f6b
add eax, 2
add edi, 2
test cl, cl
jne 0x4b6f43
xor eax, eax
jmp 0x4b6f70
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne case.0x4b6eb3.299
mov dword [esi + 0x65e0], 0
jmp case.0x4b6eb3.299
push 0
push esi
call fcn.004b5e40
add esp, 8
jmp case.0x4b6eb3.299
mov edx, dword [esi + 4]
mov eax, dword [esi]
push 1
lea ecx, [esi + 0x6515]
push 0x40
push ecx
push edx
call dword [eax]
add esp, 0x10
jmp case.0x4b6eb3.299
mov eax, dword [esp + 0x14]
push eax
push esi
call fcn.004a6990
add esp, 8
mov dword [esi + 0x65f0], eax
jmp case.0x4b6eb3.299
mov ecx, dword [esp + 0x14]
push ecx
push esi
call fcn.004a6990
add esp, 8
mov dword [esi + 0x65f4], eax
jmp case.0x4b6eb3.299
cmp dword [esp + 0x18], 1
jbe 0x4b6ff6
mov eax, dword [esi + 4]
mov edx, dword [esi]
push eax
call dword [edx + 0x18]
jmp 0x4b6ffc
push esi
call fcn.004a6950
lea ecx, [ebx + ebx*8]
add esp, 4
mov dword [esi + ecx*4 + 0x60d4], eax
mov eax, dword [esp + 0x18]
cmp eax, 4
jne case.0x4b6eb3.299
mov dword [esi + 0x2e744], 0x4abfd0
mov dword [esi + 0x65e0], 5
jmp case.0x4b6eb3.299
mov eax, str.DSLR_A100
lea edi, [esi + 0x6495]
mov dl, byte [edi]
mov cl, dl
cmp dl, byte [eax]
jne 0x4b705e
test cl, cl
je 0x4b705a
mov dl, byte [edi + 1]
mov cl, dl
cmp dl, byte [eax + 1]
jne 0x4b705e
add edi, 2
add eax, 2
test cl, cl
jne 0x4b703a
xor eax, eax
jmp 0x4b7063
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4b7095
lea eax, [ebx + ebx*8 + 0x1830]
cmp dword [esi + eax*4], 0xf20
jne 0x4b7095
push esi
call fcn.004a6950
mov ecx, dword [ebp + 0xc]
add esp, 4
add eax, ecx
inc ebx
mov dword [esi + 0x658c], eax
mov dword [esp + 0x44], ebx
jmp case.0x4b6eb3.299
mov eax, dword [esp + 0x18]
mov ecx, eax
dec eax
test ecx, ecx
mov dword [esp + 0x18], eax
je case.0x4b6eb3.299
mov eax, dword [esi + 4]
mov edx, dword [esi]
push eax
call dword [edx + 0x18]
mov ebx, dword [esi]
add esp, 4
mov edi, eax
push 0
push esi
call fcn.004a6950
mov ecx, dword [esi + 4]
mov edx, ebx
mov ebx, dword [ebp + 0xc]
add esp, 4
add eax, ebx
push eax
push ecx
call dword [edx + 8]
push ebx
push esi
call fcn.004b69b0
add esp, 0x14
test eax, eax
jne case.0x4b6eb3.299
mov ecx, dword [esi + 4]
mov eax, dword [esi]
add edi, 4
push 0
push edi
push ecx
call dword [eax + 8]
mov eax, dword [esp + 0x24]
add esp, 0xc
mov edx, eax
dec eax
test edx, edx
mov dword [esp + 0x18], eax
jne 0x4b70a8
jmp case.0x4b6eb3.299
mov eax, dword [str.Sarnoff]
mov dword [esi + 0x6455], eax
mov ecx, dword [0x5901bc]
mov dword [esi + 0x6459], ecx
mov dword [esi + 0x65c8], 0xfff
jmp case.0x4b6eb3.299
cmp eax, 0x7201
ja 0x4b72c2
je 0x4b72b0
cmp eax, 0x7010
ja 0x4b7293
je 0x4b721f
sub eax, 0x201
je case.0x4b6db4.264
dec eax
jne case.0x4b6eb3.299
push esi
call fcn.004a6950
lea edx, [ebx + ebx*8]
add esp, 4
mov dword [esi + edx*4 + 0x60e0], eax
jmp case.0x4b6eb3.299
push esi
call fcn.004a6950
mov ecx, dword [ebp + 0xc]
lea edx, [ebx + ebx*8]
add eax, ecx
add esp, 4
lea edi, [esi + edx*4]
mov dword [edi + 0x60d4], eax
mov ecx, dword [edi + 0x60c8]
test ecx, ecx
jne case.0x4b6eb3.299
mov edx, dword [esi + 4]
mov ecx, dword [esi]
push 0
push eax
push edx
call dword [ecx + 8]
lea eax, [esp + 0x128]
push 1
push eax
push esi
call fcn.004a81c0
add esp, 0x18
test eax, eax
je case.0x4b6eb3.299
mov dword [edi + 0x60cc], 6
mov edx, dword [esp + 0x128]
xor ecx, ecx
cmp edx, 2
mov edx, dword [esp + 0x124]
lea eax, [ebx + ebx*8 + 0x1830]
sete cl
shl edx, cl
mov dword [esi + eax*4], edx
mov ecx, dword [esp + 0x120]
mov dword [edi + 0x60c4], ecx
mov edx, dword [esp + 0x11c]
mov dword [edi + 0x60c8], edx
mov eax, dword [esp + 0x128]
mov dword [edi + 0x60dc], eax
jmp case.0x4b6eb3.299
lea ebx, [esp + 0x98]
mov edi, 4
push esi
call fcn.004a68b0
shr eax, 2
and eax, 0xfff
add esp, 4
mov dword [ebx], eax
add ebx, 4
dec edi
jne 0x4b722b
lea eax, [esp + 0x98]
xor ecx, ecx
mov dword [esp + 0x10], eax
mov edi, dword [eax - 4]
mov eax, dword [eax]
inc edi
cmp edi, eax
jg 0x4b727d
mov ebx, 1
sub eax, edi
shl ebx, cl
lea edx, [esi + edi*2 + 0x66ac]
inc eax
mov di, word [edx - 2]
add edx, 2
add di, bx
dec eax
mov word [edx - 2], di
jne 0x4b726c
mov eax, dword [esp + 0x10]
inc ecx
add eax, 4
cmp ecx, 5
mov dword [esp + 0x10], eax
jl 0x4b7251
jmp case.0x4b6eb3.299
cmp eax, 0x7200
jne case.0x4b6eb3.299
push esi
call fcn.004a6950
add esp, 4
mov dword [esp + 0x2c], eax
jmp case.0x4b6eb3.299
push esi
call fcn.004a6950
add esp, 4
mov dword [esp + 0x28], eax
jmp case.0x4b6eb3.299
sub eax, 0x7221
je 0x4b732e
sub eax, 0x2f
je 0x4b730d
sub eax, 0xb3
jne case.0x4b6eb3.299
xor edi, edi
push esi
call fcn.004a68b0
add esp, 4
and eax, 0xffff
xor ecx, ecx
cmp edi, 2
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
setl cl
xor ecx, edi
inc edi
cmp edi, 4
fstp dword [esi + ecx*4 + 0xe6bc]
jl 0x4b72db
jmp case.0x4b6eb3.299
mov eax, dword [esi + 4]
mov edx, dword [esi]
push eax
call dword [edx + 0x18]
push eax
push esi
call fcn.004b8940
add esp, 0xc
mov word [esi + 0x65fa], 0
jmp case.0x4b6eb3.299
push esi
call fcn.004a6950
add esp, 4
mov dword [esp + 0x24], eax
jmp case.0x4b6eb3.299
mov eax, dword [esi + 4]
mov ecx, dword [esi]
lea edx, [esi + 0x64d5]
push 0x40
push edx
push eax
call dword [ecx + 0x10]
add esp, 0xc
jmp case.0x4b6eb3.299
cmp eax, 0xc612
ja 0x4b7a07
je 0x4b79dd
cmp eax, 0x8773
ja 0x4b7583
je 0x4b7d98
cmp eax, 0x85ff
ja 0x4b73fe
je 0x4b7532
add eax, 0xffff7d72
cmp eax, 0xf
ja case.0x4b6eb3.299
xor ecx, ecx
mov cl, byte [eax + 0x4b82fc]
jmp dword [ecx*4 + 0x4b82e8]
mov ebx, dword [esi]
push 0
push esi
call fcn.004a6950
mov edx, dword [esi + 4]
add esp, 4
add eax, edi
push eax
push edx
call dword [ebx + 8]
push edi
push esi
call fcn.004b6780
add esp, 0x14
jmp case.0x4b6eb3.299
mov eax, dword [esp + 0x14]
push eax
push esi
call fcn.004a69d0
fstp dword [esi + 0x6564]
add esp, 8
jmp case.0x4b6eb3.299
mov ecx, dword [esp + 0x14]
push ecx
push esi
call fcn.004a69d0
fstp dword [esi + 0x6568]
add esp, 8
jmp case.0x4b6eb3.299
cmp eax, 0x8606
ja 0x4b7552
je 0x4b751f
sub eax, 0x8602
je 0x4b74ea
dec eax
jne case.0x4b6eb3.299
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push 7
lea eax, [esp + 0xe0]
push 1
push eax
push ecx
call dword [edx]
push 6
lea edx, [esp + 0xf0]
push str.MATRIX
push edx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0x1c
test eax, eax
jne case.0x4b6eb3.299
xor ebx, ebx
lea eax, [esi + 0xe70c]
mov dword [esi + 0x6618], 4
mov dword [esi + 0x65d0], ebx
mov dword [esp + 0x10], eax
xor edi, edi
mov edx, edi
mov ecx, dword [esi]
xor edx, 1
add edx, ebx
lea eax, [esi + edx*4 + 0xe70c]
mov edx, dword [esi + 4]
push eax
push 0x5900fc
push edx
call dword [ecx + 0x20]
add esp, 0xc
inc edi
cmp edi, 4
jl 0x4b7473
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b74d2
mov edx, dword [esp + 0x10]
mov ecx, 4
fld qword [0x5565c8]
mov eax, edx
fadd dword [eax]
add eax, 4
dec ecx
jne 0x4b74b4
mov eax, edx
mov ecx, 4
fld dword [eax]
fdiv st(1)
add eax, 4
dec ecx
fstp dword [eax - 4]
jne 0x4b74c3
fstp st(0)
mov ecx, dword [esp + 0x10]
add ebx, 4
add ecx, 0x10
cmp ebx, 0xc
mov dword [esp + 0x10], ecx
jl 0x4b7471
jmp case.0x4b6eb3.299
xor edi, edi
push esi
call fcn.004a68b0
and eax, 0xffff
add esp, 4
mov dword [esp + 0x10], eax
mov eax, edi
fild dword [esp + 0x10]
xor eax, 1
inc edi
cmp edi, 4
fdivr dword [0x574c54]
fstp dword [esi + eax*4 + 0xe6bc]
jl 0x4b74ec
jmp case.0x4b6eb3.299
mov edx, dword [esi + 4]
mov ecx, dword [esi]
push edx
call dword [ecx + 0x18]
push eax
push esi
call fcn.004b6220
add esp, 0xc
mov ecx, dword [str.Leaf]
lea eax, [esi + 0x6455]
mov dword [esi + 0x6455], ecx
mov dl, byte [0x58f394]
mov byte [eax + 4], dl
jmp case.0x4b6eb3.299
cmp eax, 0x8769
jne case.0x4b6eb3.299
mov ebx, dword [esi]
push 0
push esi
call fcn.004a6950
add esp, 4
add eax, edi
push eax
mov eax, dword [esi + 4]
push eax
call dword [ebx + 8]
push edi
push esi
call fcn.004b5f20
add esp, 0x14
jmp case.0x4b6eb3.299
cmp eax, 0xb4c3
ja 0x4b76ab
je 0x4b7666
cmp eax, 0x9211
ja 0x4b75f5
je 0x4b75dc
cmp eax, 0x9102
je 0x4b75c8
cmp eax, 0x920a
jne case.0x4b6eb3.299
mov ecx, dword [esp + 0x14]
push ecx
push esi
call fcn.004a69d0
fstp dword [esi + 0x656c]
add esp, 8
jmp case.0x4b6eb3.299
push esi
call fcn.004a6950
add esp, 4
mov dword [esi + 0x6578], eax
jmp case.0x4b6eb3.299
mov edx, dword [esp + 0x14]
push edx
push esi
call fcn.004a6990
add esp, 8
mov dword [esi + 0x6574], eax
jmp case.0x4b6eb3.299
cmp eax, 0x9218
jne case.0x4b6eb3.299
lea eax, [esi + 0xe70c]
mov dword [esi + 0x65d0], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], 3
mov ecx, dword [esp + 0x14]
push ecx
push esi
call fcn.004a69d0
mov edi, dword [esp + 0x18]
add esp, 8
fstp st(0)
mov ebx, 3
mov edx, dword [esp + 0x14]
push edx
push esi
call fcn.004a69d0
fstp dword [edi]
add esp, 8
add edi, 4
dec ebx
jne 0x4b7635
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
add ecx, 0x10
dec eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], eax
jne 0x4b761c
jmp case.0x4b6eb3.299
mov ecx, dword [str.Imacon]
lea eax, [esi + 0x6455]
mov dword [esi + 0x6455], ecx
mov dx, word [0x5901ac]
mov word [eax + 4], dx
mov cl, byte [0x5901ae]
mov edx, dword [esi]
mov byte [eax + 6], cl
mov eax, dword [esi + 4]
push eax
call dword [edx + 0x18]
mov ecx, dword [esp + 0x1c]
add esp, 4
mov dword [esi + 0x658c], eax
mov dword [esp + 0x40], ecx
jmp case.0x4b6eb3.299
cmp eax, 0xc517
ja 0x4b7956
cmp eax, 0xc516
jae 0x4b78bb
cmp eax, 0xb4c7
jne case.0x4b6eb3.299
mov eax, dword [esi + 4]
mov edx, dword [esi]
push 1
push 0x4e
push eax
call dword [edx + 8]
push esi
call fcn.004a6950
push esi
mov word [esi + 0x65fa], ax
call fcn.004a6950
push esi
mov word [esi + 0x65f8], ax
call fcn.004a6950
and eax, 7
push esi
mov word [esi + 0x6602], ax
call fcn.004a6950
mov cx, word [esi + 0x65fa]
and eax, 7
sub cx, ax
push esi
sub cx, word [esi + 0x6602]
mov word [esi + 0x65fe], cx
call fcn.004a6950
and eax, 7
push esi
mov word [esi + 0x6600], ax
call fcn.004a6950
mov dx, word [esi + 0x65f8]
and eax, 7
sub dx, ax
add esp, 0x24
sub dx, word [esi + 0x6600]
cmp word [esi + 0x65fa], 0x1c5e
mov word [esi + 0x65fc], dx
jne 0x4b777e
mov word [esi + 0x65fc], 0x1544
mov word [esi + 0x65fe], 0x1c4c
mov word [esi + 0x6602], 7
mov ecx, dword [esi + 4]
mov eax, dword [esi]
push 1
push 0x34
push ecx
call dword [eax + 8]
add esp, 0xc
lea edi, [esi + 0xe6bc]
mov ebx, 3
push 0xb
push esi
call fcn.004a69d0
fstp dword [edi]
add esp, 8
add edi, 4
dec ebx
jne 0x4b7799
mov eax, dword [esi + 4]
mov edx, dword [esi]
push 1
push 0x72
push eax
call dword [edx + 8]
push esi
call fcn.004a68b0
mov di, word [esi + 0x65fe]
mov bx, word [esi + 0x65fc]
mov ecx, ebx
mov edx, edi
and ecx, 0xffff
and edx, 0xffff
imul ecx, edx
and eax, 0xffff
mov edx, dword [esp + 0x50]
shr eax, 7
lea ecx, [ecx + ecx*2]
add esp, 0x10
lea eax, [eax + eax*4]
shl ecx, 1
lea eax, [eax + eax*8]
shl eax, 1
cmp ecx, edx
mov dword [esi + 0x6610], eax
jne 0x4b783f
cdq
mov ecx, 0xb4
idiv ecx
cmp edx, 0x5a
jne 0x4b7831
xor ebx, edi
xor word [esi + 0x65fc], bx
mov ax, word [esi + 0x65fc]
mov word [esi + 0x65fe], bx
xor word [esi + 0x65fe], ax
xor eax, eax
mov dword [esi + 0x6610], eax
mov dword [esi + 0x657c], eax
xor ecx, ecx
xor edx, edx
mov cx, word [esi + 0x65fc]
mov dx, word [esi + 0x65fe]
imul ecx, edx
mov eax, 0x431bde83
imul ecx
sar edx, 0x12
mov eax, edx
lea ecx, [esi + 0x6495]
shr eax, 0x1f
add edx, eax
push edx
push str.Ixpress__d_Mp
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov eax, dword [esi + 0x657c]
add esp, 0xc
test eax, eax
mov dword [esi + 0x2e744], 0x4ac220
je 0x4b78ac
test byte [esi + 0x6602], 1
je 0x4b78a2
mov dword [esi + 0x657c], 0x61616161
mov dword [esi + 0x2e744], fcn.004ac400
mov dword [esi + 0x65c8], 0xffff
jmp case.0x4b6eb3.299
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.MSVCRT.dll_malloc]
mov ebx, eax
add esp, 4
test ebx, ebx
je case.0x4b6eb3.299
mov ecx, dword [esp + 0x18]
mov edx, dword [esi + 4]
mov eax, dword [esi]
push ecx
push 1
push ebx
push edx
call dword [eax]
lea edi, [ebx - 1]
add esp, 0x10
test edi, edi
je 0x4b7947
mov eax, dword [esp + 0x18]
lea ecx, [ebx + eax]
cmp edi, ecx
jae 0x4b7947
inc edi
push 8
push str.Neutral
push edi
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x4b7935
lea edx, [esi + 0xe6c4]
lea eax, [esi + 0xe6c0]
push edx
lea ecx, [esi + 0xe6bc]
push eax
push ecx
lea edx, [edi + 8]
push str._f__f__f
push edx
call dword [sym.imp.MSVCRT.dll_sscanf]
add esp, 0x14
push 0xa
push edi
call dword [sym.imp.MSVCRT.dll_strchr]
mov edi, eax
add esp, 8
test edi, edi
jne 0x4b78ed
push ebx
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
jmp case.0x4b6eb3.299
cmp eax, 0xc51b
jne case.0x4b6eb3.299
movsx eax, word [esi + 0x6244]
mov edx, dword [esi + 4]
mov ecx, dword [esi]
push edx
mov dword [esp + 0x14], eax
call dword [ecx + 0x18]
mov edi, eax
mov eax, dword [esi + 0x65b4]
push esi
mov dword [esp + 0x24], eax
call fcn.004a68b0
push esi
mov word [esi + 0x6244], ax
call fcn.004a68b0
mov ebx, dword [esi]
add esp, 0xc
push 0
push esi
call fcn.004a6950
mov ecx, dword [esi + 4]
add esp, 4
add eax, edi
push eax
push ecx
call dword [ebx + 8]
push edi
push esi
call fcn.004b69b0
mov edx, dword [esp + 0x30]
mov ax, word [esp + 0x24]
add esp, 0x14
mov dword [esi + 0x65c8], 0xffff
mov dword [esi + 0x65b4], edx
mov word [esi + 0x6244], ax
jmp case.0x4b6eb3.299
mov edi, 4
mov edx, dword [esi + 4]
mov ecx, dword [esi]
push edx
call dword [ecx + 0x1c]
mov ecx, dword [esi + 0x65e4]
add esp, 4
shl ecx, 8
add eax, ecx
dec edi
mov dword [esi + 0x65e4], eax
jne 0x4b79e2
jmp case.0x4b6eb3.299
cmp eax, 0xc634
ja 0x4b7d02
je 0x4b7cc8
add eax, 0xffff39ea
cmp eax, 0x13
ja case.0x4b6eb3.299
xor edx, edx
mov dl, byte [eax + 0x4b833c]
jmp dword [edx*4 + 0x4b830c]
mov eax, dword [esp + 0x18]
cmp eax, 4
jbe 0x4b7a47
mov eax, 4
mov dword [esp + 0x18], eax
mov ecx, dword [esi]
mov dword [esi + 0x6618], eax
push eax
mov eax, dword [esi + 4]
lea edx, [esp + 0x24]
push 1
push edx
push eax
call dword [ecx]
mov ebx, dword [esp + 0x4c]
add esp, 0x10
jmp 0x4b7e56
push esi
call fcn.004a68b0
add esp, 4
cmp ax, 2
jne case.0x4b6eb3.299
mov word [esi + 0x660a], 1
mov dword [esi + 0x657c], 0x49494949
jmp case.0x4b6eb3.299
mov ecx, dword [esp + 0x18]
push ecx
push esi
call fcn.004b6720
add esp, 8
jmp case.0x4b6eb3.299
mov eax, dword [esp + 0x18]
xor edi, edi
test eax, eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
jle 0x4b7ad8
mov edx, dword [esp + 0x14]
push edx
push esi
call fcn.004a69d0
fadd qword [esp + 0x50]
mov eax, dword [esp + 0x20]
add esp, 8
inc edi
cmp edi, eax
fstp qword [esp + 0x48]
jl 0x4b7ab9
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], 0
fild qword [esp + 0x6c]
fdivr qword [esp + 0x48]
fadd qword [0x5565b8]
call sub.MSVCRT.dll__ftol
add dword [esi + 0x65c4], eax
jmp case.0x4b6eb3.299
mov eax, dword [esp + 0x14]
push eax
push esi
call fcn.004a6990
add esp, 8
mov dword [esi + 0x65c8], eax
jmp case.0x4b6eb3.299
mov ecx, dword [esp + 0x14]
push ecx
push esi
call fcn.004a69d0
mov edx, dword [esp + 0x1c]
fstp qword [esi + 0x6620]
push edx
push esi
call fcn.004a69d0
fdivr qword [esi + 0x6620]
add esp, 0x10
fstp qword [esi + 0x6620]
jmp case.0x4b6eb3.299
mov eax, dword [esi + 0x6618]
mov dword [esp + 0x1c], 0
test eax, eax
jle 0x4b7b92
lea edi, [esp + 0x238]
mov ebx, 3
mov eax, dword [esp + 0x14]
push eax
push esi
call fcn.004a69d0
fstp qword [edi]
add esp, 8
add edi, 8
dec ebx
jne 0x4b7b69
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0x6618]
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x4b7b64
mov dword [esp + 0x34], 1
jmp case.0x4b6eb3.299
mov eax, dword [esi + 0x6618]
mov dword [esp + 0x10], 0
test eax, eax
jle case.0x4b7a2e.50718
lea ecx, [esp + 0x158]
mov dword [esp + 0x1c], ecx
xor edi, edi
test eax, eax
jle 0x4b7be4
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
push edx
push esi
call fcn.004a69d0
fstp qword [ebx]
mov eax, dword [esi + 0x6618]
add esp, 8
inc edi
add ebx, 8
cmp edi, eax
jl 0x4b7bc6
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov eax, dword [esi + 0x6618]
inc ecx
add edi, 0x20
cmp ecx, eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], edi
jl 0x4b7bbc
mov eax, dword [esi + 0x6618]
xor edi, edi
test eax, eax
jle case.0x4b6eb3.299
lea ebx, [esp + 0xac]
mov eax, dword [esp + 0x14]
push eax
push esi
call fcn.004a69d0
fstp qword [ebx]
mov eax, dword [esi + 0x6618]
add esp, 8
inc edi
add ebx, 8
cmp edi, eax
jl 0x4b7c19
jmp case.0x4b6eb3.299
mov eax, dword [esi + 0x6618]
xor edi, edi
test eax, eax
jle case.0x4b6eb3.299
lea ebx, [esp + 0x74]
mov ecx, dword [esp + 0x14]
push ecx
push esi
call fcn.004a69d0
fstp qword [ebx]
mov eax, dword [esi + 0x6618]
add esp, 8
inc edi
add ebx, 8
cmp edi, eax
jl 0x4b7c50
jmp case.0x4b6eb3.299
mov edx, dword [esp + 0x14]
push edx
push esi
call fcn.004a69d0
mov eax, dword [esp + 0x1c]
fstp qword [esp + 0x58]
push eax
push esi
call fcn.004a69d0
fstp qword [esp + 0x68]
fld qword [0x5565e8]
fsub qword [esp + 0x60]
add esp, 0x10
lea ecx, [esp + 0x50]
mov eax, 0x571960
fsub qword [esp + 0x58]
fstp qword [esp + 0x60]
fld dword [eax]
fdivr qword [ecx]
add eax, 4
add ecx, 8
cmp eax, 0x57196c
fstp qword [ecx - 8]
jl 0x4b7caf
jmp case.0x4b6eb3.299
mov eax, dword [esi + 0x65e4]
test eax, eax
jne case.0x4b6eb3.299
push esi
call fcn.004a6950
mov ebx, eax
add ebx, edi
push ebx
push esi
call fcn.004b8940
mov edx, dword [esi + 4]
mov ecx, dword [esi]
push 0
push ebx
push edx
call dword [ecx + 8]
push edi
push esi
call fcn.004b69b0
add esp, 0x20
jmp case.0x4b6eb3.299
cmp eax, 0xc68f
ja 0x4b7db9
je 0x4b7d98
sub eax, 0xc640
je 0x4b7d81
sub eax, 0x4d
jne case.0x4b6eb3.299
mov eax, dword [esp + 0x14]
push eax
push esi
call fcn.004a6990
mov ecx, dword [esp + 0x1c]
mov word [esi + 0x6600], ax
push ecx
push esi
call fcn.004a6990
mov edx, dword [esp + 0x24]
mov word [esi + 0x6602], ax
push edx
push esi
call fcn.004a6990
sub ax, word [esi + 0x6600]
mov word [esi + 0x65fc], ax
mov eax, dword [esp + 0x2c]
push eax
push esi
call fcn.004a6990
add esp, 0x20
sub ax, word [esi + 0x6602]
mov word [esi + 0x65fe], ax
jmp case.0x4b6eb3.299
lea ecx, [esi + 0xe6ae]
push 3
push ecx
push esi
call fcn.004a6ba0
add esp, 0xc
jmp case.0x4b6eb3.299
mov eax, dword [esi + 4]
mov edx, dword [esi]
push eax
call dword [edx + 0x18]
mov ecx, dword [esp + 0x1c]
add esp, 4
mov dword [esi + 0x6598], eax
mov dword [esi + 0x65a4], ecx
jmp case.0x4b6eb3.299
sub eax, 0xfd04
je 0x4b7eb7
sub eax, 5
jne case.0x4b6eb3.299
mov ebx, dword [esp + 0x18]
cmp ebx, 0x10
mov dword [esp + 0x3c], ebx
jbe 0x4b7de3
mov ebx, 0x10
mov dword [esp + 0x3c], ebx
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push ebx
lea eax, [esp + 0xd0]
push 1
push eax
push ecx
call dword [edx]
xor edi, edi
add esp, 0x10
xor edx, edx
cmp ebx, edi
mov dword [esi + 0x6618], edi
jle 0x4b7e56
mov cl, byte [esp + edx + 0xcc]
mov eax, 1
shl eax, cl
mov ecx, edi
and ecx, eax
neg ecx
sbb ecx, ecx
or edi, eax
inc ecx
add dword [esi + 0x6618], ecx
inc edx
cmp edx, ebx
jl 0x4b7e07
cmp edi, 0x38
jne 0x4b7e47
mov dx, word [0x59017c]
mov al, byte [0x59017e]
mov word [esp + 0x20], dx
mov byte [esp + 0x22], al
jmp 0x4b7e56
cmp edi, 0x3a
jne 0x4b7e56
mov ecx, dword [0x590174]
mov dword [esp + 0x20], ecx
mov edi, dword [esi + 0x6618]
xor eax, eax
test edi, edi
jle 0x4b7e74
xor edx, edx
mov dl, byte [esp + eax + 0x20]
mov byte [esp + edx + 0x298], al
inc eax
cmp eax, edi
jl 0x4b7e62
mov byte [eax + esi + 0x6250], 0
mov edi, dword [esi + 0x657c]
mov ecx, 0xf
mov eax, ecx
xor edx, edx
div ebx
xor eax, eax
mov al, byte [esp + edx + 0xcc]
xor edx, edx
mov dl, byte [esp + eax + 0x298]
mov eax, edi
shl eax, 2
or edx, eax
mov edi, edx
mov edx, ecx
dec ecx
test edx, edx
jne 0x4b7e87
mov dword [esi + 0x657c], edi
jmp case.0x4b6eb3.299
mov ecx, dword [esi + 4]
mov eax, dword [esi]
push 1
push 0x10
push ecx
call dword [eax + 8]
push esi
call fcn.004a6950
mov edx, dword [esi]
mov dword [esi + 0x658c], eax
mov eax, dword [esi + 4]
push 1
push 0x1c
push eax
call dword [edx + 8]
push esi
call fcn.004a6950
mov ecx, dword [esi + 0x658c]
add esp, 0x20
add ecx, eax
mov dword [esi + 0x2e744], 0x4ac280
mov dword [esi + 0x658c], ecx
mov edx, dword [esp + 0x68]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push 0
push edx
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x3c]
add esp, 0xc
mov ecx, eax
dec eax
test ecx, ecx
mov dword [esp + 0x30], eax
jne 0x4b6b40
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x4b7fdd
push ebx
call dword [sym.imp.MSVCRT.dll_malloc]
mov edi, eax
add esp, 4
test edi, edi
je 0x4b7fdd
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push 0
push eax
push ecx
call dword [edx + 8]
mov eax, dword [esi + 4]
mov edx, dword [esi]
push 1
push ebx
push edi
push eax
call dword [edx]
mov ecx, dword [esp + 0x40]
mov edx, ebx
push ecx
push 1
shr edx, 2
push edx
push edi
call fcn.004aef80
mov eax, dword [esi]
mov ecx, dword [esi + 4]
add esp, 0x2c
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov dword [esi], 0x58ed18
call dword [sym.imp.MSVCRT.dll_tmpfile]
test eax, eax
mov dword [esi + 4], eax
je 0x4b7fc6
mov edx, dword [esi]
push 1
push ebx
push edi
push eax
call dword [edx + 4]
mov ecx, dword [esi + 4]
mov eax, dword [esi]
push 0
push 0
push ecx
call dword [eax + 8]
mov eax, dword [esp + 0x48]
neg eax
push eax
push esi
call fcn.004b69b0
mov eax, dword [esi + 4]
mov edx, dword [esi]
push eax
call dword [edx + 0xc]
add esp, 0x28
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov dword [esi], ecx
push edi
mov dword [esi + 4], edx
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
mov eax, dword [esi + 0x6618]
test eax, eax
jle 0x4b8019
lea edi, [esp + 0x158]
lea ecx, [esp + 0xac]
mov ebx, eax
mov edx, dword [esi + 0x6618]
test edx, edx
jle 0x4b8010
mov eax, edi
fld qword [ecx]
fmul qword [eax]
add eax, 8
dec edx
fstp qword [eax - 8]
jne 0x4b8003
add ecx, 8
add edi, 0x20
dec ebx
jne 0x4b7ff7
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4b80be
mov ecx, dword [esi + 0x6618]
test ecx, ecx
jle 0x4b80ad
lea eax, [esp + 0x158]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x1d8]
xor edx, edx
mov dword [esp + 0x24], edx
mov edi, dword [esi + 0x6618]
mov dword [eax], 0
test edi, edi
mov dword [eax + 4], 0
jle 0x4b8088
mov ecx, dword [esp + 0x2c]
lea ebx, [esp + edx + 0x50]
lea edx, [esp + edx + 0x238]
fld qword [edx]
fmul qword [ecx]
add ecx, 8
add edx, 0x18
dec edi
fmul qword [ebx]
fadd qword [eax]
fstp qword [eax]
jne 0x4b8071
mov edx, dword [esp + 0x24]
add edx, 8
add eax, 8
cmp edx, 0x18
mov dword [esp + 0x24], edx
jl 0x4b804b
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
add edx, 0x20
dec ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], ecx
jne 0x4b8045
lea ecx, [esp + 0x1d8]
push ecx
push esi
call fcn.004b0ca0
add esp, 8
fld qword [esp + 0x74]
fcomp qword [0x5565c8]
fnstsw ax
test ah, 0x40
jne 0x4b8105
mov eax, dword [esi + 0x6618]
xor edx, edx
test eax, eax
mov dword [esi + 0xe6c8], edx
jle 0x4b8105
lea ecx, [esp + 0x74]
lea eax, [esi + 0xe6bc]
fld qword [ecx]
fdivr dword [0x5565d0]
inc edx
add eax, 4
add ecx, 8
fstp dword [eax - 4]
cmp edx, dword [esi + 0x6618]
jl 0x4b80eb
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x4b813c
mov eax, dword [esi + 0x6618]
xor edx, edx
test eax, eax
jle 0x4b813c
lea ecx, [esp + 0x158]
lea eax, [esi + 0xe6cc]
fld qword [ecx]
fdivr dword [eax]
inc edx
add eax, 4
add ecx, 0x28
fstp dword [eax - 4]
cmp edx, dword [esi + 0x6618]
jl 0x4b8126
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret