Function at 0x3004d2dc
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x8c
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x98]
push ebx
mov ebx, dword [esp + 0xa8]
push ebp
mov ebp, dword [esp + 0x98]
push esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xac]
xor esi, esi
cmp ebp, esi
push edi
mov edi, eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x80], esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edi
je 0x3004e572
cmp ecx, esi
je 0x3004e572
cmp eax, esi
je 0x3004e572
mov edx, dword [esp + 0xa4]
test edx, 0xbffceff8
je 0x3004d367
push 0x3ec
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x8c
ret
mov eax, dword [ebp + 0x1c]
cmp eax, esi
mov dword [esp + 0x94], eax
jne 0x3004d415
cmp dword [esp + 0xac], esi
je 0x3004d3f3
cmp word [ecx], si
jne 0x3004d391
cmp dword [esp + 0xac], 0xfffffffe
je 0x3004d3d2
cmp ebx, esi
je 0x3004d3d2
mov ax, word [edi]
cmp ax, si
jne 0x3004d3a7
cmp dword [esp + 0xb4], 0xfffffffe
je 0x3004d3d2
cmp word [ecx], ax
jne 0x3004d3d2
mov eax, dword [esp + 0x18]
sub eax, 1
add ecx, 2
add edi, 2
sub ebx, 1
cmp eax, esi
mov dword [esp + 0x18], eax
jne 0x3004d382
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
jmp 0x3004d3f3
cmp dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
je 0x3004d3f3
cmp word [ecx], si
jne 0x3004d40e
cmp dword [esp + 0xac], 0xfffffffe
jne 0x3004d40e
cmp ebx, esi
je 0x3004e562
cmp word [edi], si
jne 0x3004d40e
cmp dword [esp + 0xb4], 0xfffffffe
je 0x3004e562
mov ebp, dword [esp + 0xa0]
mov eax, edx
and eax, 4
mov dword [esp + 0x60], eax
mov ecx, edx
and ecx, 2
mov dword [esp + 0x70], eax
mov dword [esp + 0x5c], ecx
mov eax, edx
and eax, 0x1000
or edi, 0xffffffff
mov ecx, edx
mov dword [esp + 0x90], eax
and ecx, 3
cmp ecx, 3
mov eax, 4
mov dword [esp + 0x54], esi
mov dword [esp + 0x84], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x7c], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x48], eax
mov dword [esp + 0x38], edi
ja case.default.0x3004d47e
jmp dword [ecx*4 + 0x3004e588]
mov dword [esp + 0x38], edi
jmp 0x3004d493
mov dword [esp + 0x38], 0xe7ffffff
xor eax, eax
cmp dword [ebp + 0x18], esi
setne al
add eax, 1
or al, 4
mov dword [esp + 0x48], eax
jmp case.default.0x3004d47e
mov dword [esp + 0x38], 0xff00ffff
jmp case.default.0x3004d47e
mov dword [esp + 0x38], 0xe700ffff
mov ecx, edx
and ecx, 0x30000
cmp ecx, 0x10000
je 0x3004d4fc
cmp ecx, 0x20000
je 0x3004d4ea
cmp ecx, 0x30000
jne 0x3004d501
and byte [esp + 0x3b], 0xde
test dl, 1
je 0x3004d501
and al, 0xfb
mov dword [esp + 0x48], eax
jmp 0x3004d501
and byte [esp + 0x3b], 0xfe
test dl, 1
je 0x3004d501
and al, 0xfb
mov dword [esp + 0x48], eax
jmp 0x3004d501
and byte [esp + 0x3b], 0xdf
cmp dword [esp + 0x18], esi
je 0x3004e44b
nop
mov ebx, dword [esp + 0x14]
mov ax, word [ebx]
test ax, ax
mov edx, dword [esp + 0xac]
jne 0x3004d528
cmp edx, 0xfffffffe
je 0x3004e4dc
cmp dword [esp + 0x1c], 0
mov edi, dword [esp + 0x10]
je 0x3004e4e0
mov si, word [edi]
test si, si
jne 0x3004d54d
cmp dword [esp + 0xb4], 0xfffffffe
je 0x3004e4e0
or ebx, 0xffffffff
cmp dword [esp + 0x20], ebx
jne 0x3004d56c
lea ecx, [esp + 0x20]
push ecx
push eax
call fcn.3004cdcf
mov edx, dword [esp + 0x40]
add esp, 8
and dword [esp + 0x20], edx
cmp dword [esp + 0x28], ebx
jne 0x3004d588
lea eax, [esp + 0x28]
push eax
push esi
call fcn.3004cdcf
mov ecx, dword [esp + 0x40]
add esp, 8
and dword [esp + 0x28], ecx
cmp dword [esp + 0x94], 0
je 0x3004daf5
test byte [esp + 0x23], 0xc0
jne 0x3004d5ac
mov eax, dword [esp + 0x28]
shr eax, 0x18
test al, 0xc0
je 0x3004daf5
mov dl, byte [esp + 0x2b]
mov bl, byte [esp + 0x23]
and edx, 0xc0
and ebx, 0xc0
mov ebp, edx
cmp ebx, ebp
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x98], ebp
mov dword [esp + 0x64], ebx
jg 0x3004d5d9
mov dword [esp + 0x64], ebp
mov edx, dword [esp + 0x18]
add edx, 0xffffffff
mov esi, dword [esp + 0x14]
je 0x3004d601
cmp word [esi + 2], 0
jne 0x3004d5f7
cmp dword [esp + 0xac], 0xfffffffe
je 0x3004d601
mov dword [esp + 0x4c], 0
jmp 0x3004d609
mov dword [esp + 0x4c], 1
mov ecx, dword [esp + 0x1c]
add ecx, 0xffffffff
je 0x3004d62d
cmp word [edi + 2], 0
jne 0x3004d623
cmp dword [esp + 0xb4], 0xfffffffe
je 0x3004d62d
mov dword [esp + 0x44], 0
jmp 0x3004d635
mov dword [esp + 0x44], 1
mov eax, dword [esp + 0xa0]
cmp dword [eax + 0x20], 0
jne 0x3004d848
mov eax, dword [esp + 0x64]
sub eax, 0x80
je 0x3004d776
sub eax, 0x40
jne 0x3004daf5
test ebx, ebx
je 0x3004d683
cmp dword [esp + 0x4c], 0
jne 0x3004d683
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffffe
je 0x3004d683
cmp word [esi + 4], 0
jne 0x3004d6b8
cmp dword [esp + 0xac], 0xfffffffe
jne 0x3004d6b8
test ebp, ebp
je 0x3004d776
cmp dword [esp + 0x44], 0
jne 0x3004d776
mov edx, dword [esp + 0x1c]
add edx, 0xfffffffe
je 0x3004d776
cmp word [edi + 4], 0
jne 0x3004d6b8
cmp dword [esp + 0xb4], 0xfffffffe
je 0x3004d776
mov eax, dword [esp + 0xa0]
mov ecx, dword [eax + 0x24]
movzx ecx, word [ecx + 0xa]
test ecx, ecx
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x3c], ecx
jle 0x3004d776
mov edx, dword [esp + 0x38]
lea ecx, [ecx]
test ebx, ebx
je 0x3004d723
mov cx, word [eax]
cmp cx, word [esi]
jne 0x3004d723
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x3004d723
mov cx, word [eax + 4]
cmp cx, word [esi + 4]
jne 0x3004d723
mov ecx, dword [eax + 8]
sub dword [esp + 0x18], 2
and ecx, edx
add esi, 4
xor ebx, ebx
test ebp, ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], esi
jne 0x3004d727
cmp dword [esp + 0x3c], 0
jg 0x3004daf5
jmp 0x3004d77a
test ebp, ebp
je 0x3004d75e
mov cx, word [eax]
cmp cx, word [edi]
jne 0x3004d75e
mov cx, word [eax + 2]
cmp cx, word [edi + 2]
jne 0x3004d75e
mov cx, word [eax + 4]
cmp cx, word [edi + 4]
jne 0x3004d75e
mov ecx, dword [eax + 8]
sub dword [esp + 0x1c], 2
and ecx, edx
add edi, 4
xor ebp, ebp
test ebx, ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x10], edi
je 0x3004d716
mov ecx, dword [esp + 0x3c]
sub ecx, 1
add eax, 0xc
test ecx, ecx
mov dword [esp + 0x3c], ecx
jg 0x3004d6db
jmp 0x3004d77a
mov edx, dword [esp + 0x38]
test ebx, ebx
je 0x3004d785
cmp dword [esp + 0x4c], 0
je 0x3004d798
test ebp, ebp
je 0x3004daf5
cmp dword [esp + 0x44], 0
jne 0x3004daf5
mov eax, dword [esp + 0xa0]
mov ecx, dword [eax + 0x24]
movzx ecx, word [ecx + 8]
test ecx, ecx
mov eax, dword [eax + 0x28]
mov dword [esp + 0x3c], ecx
jle 0x3004daf5
lea ebx, [ebx]
test ebx, ebx
jne 0x3004d7c5
test ebp, ebp
je 0x3004daf5
jmp 0x3004d7fc
mov cx, word [eax]
cmp cx, word [esi]
jne 0x3004d7f8
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x3004d7f8
mov ecx, dword [eax + 4]
sub dword [esp + 0x18], 1
and ecx, edx
add esi, 2
xor ebx, ebx
test ebp, ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], esi
je 0x3004daf5
jmp 0x3004d7fc
test ebp, ebp
je 0x3004d82d
mov cx, word [eax]
cmp cx, word [edi]
jne 0x3004d82d
mov cx, word [eax + 2]
cmp cx, word [edi + 2]
jne 0x3004d82d
mov ecx, dword [eax + 4]
sub dword [esp + 0x1c], 1
and ecx, edx
add edi, 2
xor ebp, ebp
test ebx, ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x10], edi
je 0x3004daf5
mov ecx, dword [esp + 0x3c]
sub ecx, 1
add eax, 8
test ecx, ecx
mov dword [esp + 0x3c], ecx
jg 0x3004d7b7
jmp 0x3004daf5
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x24], 0
jne 0x3004d880
mov esi, dword [esp + 0x14]
mov di, word [esi]
xor eax, eax
cmp di, word [esi + 2]
mov edi, dword [esp + 0x10]
sete al
test eax, eax
mov dword [esp + 0x24], eax
je 0x3004d880
mov eax, esi
add eax, 2
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
cmp dword [esp + 0x44], 0
mov dword [esp + 0x6c], 0
jne 0x3004d8ae
mov si, word [edi]
xor eax, eax
cmp si, word [edi + 2]
sete al
test eax, eax
mov dword [esp + 0x6c], eax
je 0x3004d8ae
add edi, 2
mov dword [esp + 0x10], edi
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x64]
sub eax, 0x80
je 0x3004da15
sub eax, 0x40
jne 0x3004dad1
test ebx, ebx
je 0x3004d965
cmp dword [esp + 0x4c], 0
jne 0x3004d965
mov eax, dword [esp + 0x18]
add eax, 0xfffffffe
mov dword [esp + 0x64], eax
je 0x3004d965
mov ecx, dword [esp + 0x14]
mov si, word [ecx + 4]
test si, si
jne 0x3004d8fd
cmp dword [esp + 0xac], 0xfffffffe
je 0x3004d965
mov eax, dword [esp + 0xa0]
mov edx, dword [eax + 0x24]
movzx ecx, word [edx + 0xa]
test ecx, ecx
mov eax, dword [eax + 0x2c]
jle 0x3004d965
mov edi, dword [esp + 0x14]
mov dx, word [edi]
cmp word [eax], dx
jne 0x3004d932
mov bx, word [eax + 2]
cmp bx, word [edi + 2]
jne 0x3004d92e
cmp word [eax + 4], si
je 0x3004d93e
mov ebx, dword [esp + 0x3c]
sub ecx, 1
add eax, 0xc
test ecx, ecx
jg 0x3004d919
jmp 0x3004d965
mov eax, dword [eax + 8]
and eax, dword [esp + 0x38]
cmp dword [esp + 0x24], 0
mov dword [esp + 0x20], eax
jne 0x3004d95f
mov eax, dword [esp + 0x64]
add edi, 4
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], eax
xor ebx, ebx
mov dword [esp + 0x3c], ebx
test ebp, ebp
je 0x3004da0b
cmp dword [esp + 0x44], 0
jne 0x3004da0b
mov edi, dword [esp + 0x1c]
add edi, 0xfffffffe
je 0x3004da0b
mov ecx, dword [esp + 0x10]
mov si, word [ecx + 4]
test si, si
jne 0x3004d99c
cmp dword [esp + 0xb4], 0xfffffffe
je 0x3004da0b
mov eax, dword [esp + 0xa0]
mov edx, dword [eax + 0x24]
movzx ecx, word [edx + 0xa]
test ecx, ecx
mov eax, dword [eax + 0x2c]
jle 0x3004da0b
mov edx, dword [esp + 0x10]
mov dx, word [edx]
cmp word [eax], dx
jne 0x3004d9dc
mov bp, word [eax + 2]
mov ebx, dword [esp + 0x10]
cmp bp, word [ebx + 2]
jne 0x3004d9d1
cmp word [eax + 4], si
je 0x3004d9e8
mov ebp, dword [esp + 0x98]
mov ebx, dword [esp + 0x3c]
sub ecx, 1
add eax, 0xc
test ecx, ecx
jg 0x3004d9b8
jmp 0x3004da0b
mov eax, dword [eax + 8]
and eax, dword [esp + 0x38]
cmp dword [esp + 0x6c], 0
mov dword [esp + 0x28], eax
jne 0x3004da05
add ebx, 4
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1c], edi
mov ebx, dword [esp + 0x3c]
xor ebp, ebp
test ebx, ebx
mov edi, dword [esp + 0x10]
jne 0x3004da19
jmp 0x3004da75
test ebx, ebx
je 0x3004da75
cmp dword [esp + 0x4c], 0
jne 0x3004da75
mov eax, dword [esp + 0xa0]
mov ecx, dword [eax + 0x24]
movzx ecx, word [ecx + 8]
test ecx, ecx
mov eax, dword [eax + 0x28]
jle 0x3004da75
mov esi, dword [esp + 0x14]
mov dx, word [esi]
cmp word [eax], dx
jne 0x3004da4b
mov bx, word [eax + 2]
cmp bx, word [esi + 2]
je 0x3004da57
sub ecx, 1
add eax, 8
test ecx, ecx
jg 0x3004da3c
jmp 0x3004da75
mov eax, dword [eax + 4]
and eax, dword [esp + 0x38]
cmp dword [esp + 0x24], 0
mov dword [esp + 0x20], eax
jne 0x3004da75
add esi, 2
sub dword [esp + 0x18], 1
mov dword [esp + 0x14], esi
test ebp, ebp
je 0x3004dad1
cmp dword [esp + 0x44], 0
jne 0x3004dad1
mov eax, dword [esp + 0xa0]
mov edx, dword [eax + 0x24]
movzx ecx, word [edx + 8]
test ecx, ecx
mov eax, dword [eax + 0x28]
jle 0x3004dad1
mov dx, word [edi]
cmp word [eax], dx
jne 0x3004daa7
mov si, word [eax + 2]
cmp si, word [edi + 2]
je 0x3004dab3
sub ecx, 1
add eax, 8
test ecx, ecx
jg 0x3004da98
jmp 0x3004dad1
mov eax, dword [eax + 4]
and eax, dword [esp + 0x38]
cmp dword [esp + 0x6c], 0
mov dword [esp + 0x28], eax
jne 0x3004dad1
add edi, 2
sub dword [esp + 0x1c], 1
mov dword [esp + 0x10], edi
cmp dword [esp + 0x24], 0
je 0x3004dae2
sub dword [esp + 0x14], 2
add dword [esp + 0x18], 1
cmp dword [esp + 0x6c], 0
je 0x3004daf5
sub edi, 2
add dword [esp + 0x1c], 1
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x20], eax
je 0x3004e3ea
mov esi, dword [esp + 0x20]
mov dl, byte [esp + 0x21]
mov cl, byte [esp + 0x29]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x3c], esi
mov si, word [esp + 0x20]
cmp si, word [esp + 0x28]
mov al, dl
mov byte [esp + 0x2f], al
mov byte [esp + 0x43], cl
jne 0x3004db43
cmp dl, 0xb
ja 0x3004e2de
cmp dl, 3
jb 0x3004e2de
test dl, dl
mov edi, 2
mov edx, 1
jne 0x3004db62
add dword [esp + 0x14], edi
sub dword [esp + 0x18], edx
or esi, 0xffffffff
mov dword [esp + 0x20], esi
jmp 0x3004db65
or esi, 0xffffffff
cmp byte [esp + 0x29], 0
jne 0x3004db78
add dword [esp + 0x10], edi
sub dword [esp + 0x1c], edx
mov dword [esp + 0x28], esi
cmp dword [esp + 0x5c], 0
je 0x3004dba0
cmp al, 1
jne 0x3004db8f
add dword [esp + 0x14], edi
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
cmp cl, 1
jne 0x3004dba0
add dword [esp + 0x10], edi
sub dword [esp + 0x1c], edx
mov dword [esp + 0x28], esi
cmp dword [esp + 0x70], 0
je 0x3004dbc8
cmp al, 6
jne 0x3004dbb7
add dword [esp + 0x14], edi
sub dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
cmp cl, 6
jne 0x3004dbc8
add dword [esp + 0x10], edi
sub dword [esp + 0x1c], edx
mov dword [esp + 0x28], esi
cmp dword [esp + 0x20], esi
je 0x3004e440
cmp dword [esp + 0x28], 0xffffffff
je 0x3004e440
movzx eax, byte [esp + 0x2f]
add eax, 0xffffffff
cmp eax, 0xa
ja case.0x3004dbf5.3
movzx ecx, byte [eax + 0x3004e5b0]
jmp dword [ecx*4 + 0x3004e598]
cmp dword [esp + 0x5c], 0
jne 0x3004dc1e
cmp dword [esp + 0x54], 0
je 0x3004dc11
test byte [esp + 0x48], 2
je 0x3004dc1e
and dword [esp + 0x48], 0xfffffffe
mov dword [esp + 0x54], 3
add dword [esp + 0x14], 2
sub dword [esp + 0x18], 1
mov dword [esp + 0x20], 0xffffffff
jmp case.0x3004dbf5.3
cmp dword [esp + 0x70], 0
je case.0x3004dbf5.3
add dword [esp + 0x14], 2
sub dword [esp + 0x18], 1
mov dword [esp + 0x20], 0xffffffff
jmp case.0x3004dbf5.3
cmp dword [esp + 0x60], 0
je 0x3004dc75
add dword [esp + 0x14], 2
sub dword [esp + 0x18], 1
mov dword [esp + 0x20], 0xffffffff
jmp case.0x3004dbf5.3
cmp dword [esp + 0x90], 0
jne case.0x3004dbf5.3
cmp byte [esp + 0x43], 6
je case.0x3004dbf5.3
cmp dword [esp + 0x58], 0
je 0x3004dcbc
add dword [esp + 0x14], 2
sub dword [esp + 0x18], 1
mov dword [esp + 0x58], 3
mov dword [esp + 0x60], 1
mov dword [esp + 0x20], 0xffffffff
jmp case.0x3004dbf5.3
add dword [esp + 0x14], 2
sub dword [esp + 0x18], 1
mov dword [esp + 0x50], 3
mov dword [esp + 0x20], 0xffffffff
jmp case.0x3004dbf5.3
mov edx, dword [esp + 0x14]
movzx ecx, byte [esp + 0x20]
add dword [esp + 0x18], 1
mov dword [esp + 0x74], edx
mov edx, dword [0x30062418]
lea eax, [esp + 0x88]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0x28]
mov dx, word [eax + ecx*4 + 2]
lea eax, [eax + ecx*4]
mov cx, word [eax]
mov word [esp + 0x88], cx
mov word [esp + 0x8a], dx
mov dword [esp + 0x80], 2
mov dword [esp + 0x20], 0xffffffff
jmp case.0x3004dbf5.3
mov bl, byte [esp + 0x23]
mov al, byte [esp + 0x20]
and bl, 0x3f
cmp al, 1
mov ecx, 0xffff0000
mov dword [esp + 0x34], 0
mov dword [esp + 0x24], ecx
ja 0x3004de2a
mov ebp, dword [esp + 0x14]
lea eax, [ebp - 2]
cmp eax, dword [esp + 0xa8]
jb 0x3004de51
mov edi, 2
lea esi, [ebp - 2]
lea ecx, [ecx]
mov dx, word [esi]
lea ecx, [esp + 0x24]
push ecx
push edx
call fcn.3004cdcf
mov ecx, dword [esp + 0x2c]
and ecx, dword [esp + 0x40]
add esp, 8
mov dword [esp + 0x24], ecx
mov al, byte [esp + 0x25]
cmp al, 3
jae 0x3004ddaa
cmp al, 2
mov ecx, 0xffff0000
je 0x3004de51
jmp 0x3004ddb9
jne 0x3004de24
mov al, byte [esp + 0x24]
cmp al, 1
ja 0x3004ddd2
mov ecx, 0xffff0000
add edi, 2
mov eax, ebp
sub eax, edi
sub esi, 2
cmp eax, dword [esp + 0xa8]
mov dword [esp + 0x24], ecx
jae 0x3004dd76
jmp 0x3004de51
movzx cx, al
mov al, byte [esp + 0x27]
or ch, 0x22
and al, 0x3f
mov word [esp + 0x24], cx
mov cl, al
and cl, 0xc6
mov byte [esp + 0x34], cl
mov cl, al
and cl, 0xe4
cmp byte [esp + 0x20], 0
mov byte [esp + 0x36], cl
mov ecx, dword [esp + 0x24]
jne 0x3004de12
and al, 0xc5
mov dword [esp + 0x4c], ecx
mov byte [esp + 0x35], 4
mov byte [esp + 0x37], al
jmp 0x3004de58
mov eax, ecx
and eax, 0xff87
mov dword [esp + 0x4c], eax
mov byte [esp + 0x35], 5
jmp 0x3004de4a
mov dword [esp + 0x4c], ecx
jmp 0x3004de51
movzx ax, al
or ah, 0x22
mov byte [esp + 0x35], 3
mov dword [esp + 0x4c], eax
mov al, bl
and al, 0xc6
mov byte [esp + 0x34], al
mov al, bl
and al, 0xe4
mov byte [esp + 0x36], al
and bl, 0xc5
mov byte [esp + 0x37], bl
cmp byte [esp + 0x20], 1
ja 0x3004de76
cmp ecx, 0xffff0000
jne 0x3004de76
mov dword [esp + 0x4c], 0xffff
mov dword [esp + 0x20], ecx
mov dword [esp + 0x34], 0
jmp 0x3004de90
mov edx, dword [esp + 0x20]
movzx eax, word [esp + 0x4c]
and edx, 0xffff0000
or edx, eax
mov dword [esp + 0x20], edx
mov byte [esp + 0x23], 2
cmp byte [esp + 0x43], 3
je case.0x3004dbf5.3
cmp byte [esp + 0x30], 0
jne 0x3004deaa
cmp byte [esp + 0x34], 0
je 0x3004deaa
mov byte [esp + 0x30], 3
cmp byte [esp + 0x31], 0
jne 0x3004dec1
mov eax, dword [esp + 0x34]
shr eax, 8
test al, al
je 0x3004dec1
mov byte [esp + 0x31], 3
cmp byte [esp + 0x32], 0
jne 0x3004ded8
mov eax, dword [esp + 0x34]
shr eax, 0x10
test al, al
je 0x3004ded8
mov byte [esp + 0x32], 3
cmp byte [esp + 0x33], 0
jne case.0x3004dbf5.3
cmp byte [esp + 0x37], 0
je case.0x3004dbf5.3
mov byte [esp + 0x33], 3
movzx eax, byte [esp + 0x43]
add eax, 0xffffffff
cmp eax, 0xa
ja case.0x3004df03.3
movzx ecx, byte [eax + 0x3004e5d8]
jmp dword [ecx*4 + 0x3004e5c0]
cmp dword [esp + 0x5c], 0
jne 0x3004df2c
cmp dword [esp + 0x54], 0
je 0x3004df1f
test byte [esp + 0x48], 2
je 0x3004df2c
and dword [esp + 0x48], 0xfffffffe
mov dword [esp + 0x54], 1
add dword [esp + 0x10], 2
sub dword [esp + 0x1c], 1
mov dword [esp + 0x28], 0xffffffff
jmp case.0x3004df03.3
cmp dword [esp + 0x70], 0
je case.0x3004df03.3
add dword [esp + 0x10], 2
sub dword [esp + 0x1c], 1
mov dword [esp + 0x28], 0xffffffff
jmp case.0x3004df03.3
cmp dword [esp + 0x60], 0
je 0x3004df83
add dword [esp + 0x10], 2
sub dword [esp + 0x1c], 1
mov dword [esp + 0x28], 0xffffffff
jmp case.0x3004df03.3
cmp dword [esp + 0x90], 0
jne case.0x3004df03.3
cmp byte [esp + 0x2f], 6
je 0x3004dfc4
cmp dword [esp + 0x50], 0
mov eax, 1
je 0x3004dfaa
mov dword [esp + 0x50], eax
jmp 0x3004e010
add dword [esp + 0x10], 2
sub dword [esp + 0x1c], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x28], 0xffffffff
jmp case.0x3004df03.3
cmp dword [esp + 0x50], 0
je 0x3004dfd6
mov eax, 1
mov dword [esp + 0x50], eax
jmp 0x3004dfff
cmp dword [esp + 0x58], 0
je 0x3004dfe7
mov dword [esp + 0x58], 3
jmp 0x3004dffa
mov dl, byte [esp + 0x20]
cmp dl, byte [esp + 0x28]
sbb eax, eax
and al, 0xfe
add eax, 3
mov dword [esp + 0x50], eax
mov eax, 1
add dword [esp + 0x14], 2
sub dword [esp + 0x18], eax
mov dword [esp + 0x20], 0xffffffff
add dword [esp + 0x10], 2
sub dword [esp + 0x1c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x28], 0xffffffff
jmp case.0x3004df03.3
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + 0x28]
add dword [esp + 0x1c], 1
mov dword [esp + 0x7c], eax
mov eax, dword [0x30062418]
lea ecx, [esp + 0x8c]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 0x28]
lea eax, [ecx + edx*4]
mov dx, word [eax]
mov ax, word [eax + 2]
mov word [esp + 0x8c], dx
mov word [esp + 0x8e], ax
mov dword [esp + 0x78], 2
mov dword [esp + 0x28], 0xffffffff
jmp case.0x3004df03.3
mov bl, byte [esp + 0x2b]
mov al, byte [esp + 0x28]
and bl, 0x3f
cmp al, 1
mov esi, 0xffff0000
mov dword [esp + 0x24], 0
mov dword [esp + 0x44], esi
ja 0x3004e1bc
mov ecx, dword [esp + 0x10]
add ecx, 0xfffffffe
cmp ecx, dword [esp + 0xb0]
jb 0x3004e0ec
mov edi, dword [esp + 0x10]
mov ebp, 2
add edi, 0xfffffffe
mov ax, word [edi]
lea edx, [esp + 0x44]
push edx
push eax
call fcn.3004cdcf
mov esi, dword [esp + 0x4c]
and esi, dword [esp + 0x40]
add esp, 8
mov dword [esp + 0x44], esi
mov al, byte [esp + 0x45]
cmp al, 3
jae 0x3004e134
cmp al, 2
mov esi, 0xffff0000
jne 0x3004e143
mov al, byte [esp + 0x27]
mov dl, byte [esp + 0x26]
mov cl, byte [esp + 0x24]
cmp byte [esp + 0x28], 1
ja 0x3004e1e0
cmp esi, 0xffff0000
jne 0x3004e1e0
mov dword [esp + 0x24], 0
mov al, byte [esp + 0x27]
mov dl, byte [esp + 0x26]
mov cl, byte [esp + 0x24]
mov dword [esp + 0x3c], 0xffff
mov dword [esp + 0x28], esi
jmp 0x3004e1fa
jne 0x3004e1b3
mov al, byte [esp + 0x44]
cmp al, 1
ja 0x3004e162
mov esi, 0xffff0000
mov ecx, dword [esp + 0x10]
add ebp, 2
sub ecx, ebp
sub edi, 2
cmp ecx, dword [esp + 0xb0]
mov dword [esp + 0x44], esi
jae 0x3004e0be
jmp 0x3004e0ec
movzx dx, al
mov al, byte [esp + 0x47]
or dh, 0x22
and al, 0x3f
mov cl, al
and cl, 0xc6
mov word [esp + 0x44], dx
mov esi, dword [esp + 0x44]
mov dl, al
and dl, 0xe4
cmp byte [esp + 0x28], 0
jne 0x3004e199
mov dword [esp + 0x3c], esi
mov byte [esp + 0x25], 4
and al, 0xc5
jmp 0x3004e103
mov eax, esi
and eax, 0xff87
and bl, 0xc5
mov dword [esp + 0x3c], eax
mov byte [esp + 0x25], 5
mov al, bl
jmp 0x3004e0f8
mov dword [esp + 0x3c], esi
jmp 0x3004e0ec
movzx ax, al
or ah, 0x22
mov cl, bl
mov dl, bl
and cl, 0xc6
and dl, 0xe4
and bl, 0xc5
mov byte [esp + 0x25], 3
mov dword [esp + 0x3c], eax
mov al, bl
jmp 0x3004e0f8
mov esi, dword [esp + 0x28]
movzx edi, word [esp + 0x3c]
and esi, 0xffff0000
or esi, edi
mov dword [esp + 0x28], esi
mov byte [esp + 0x2b], 2
cmp byte [esp + 0x2f], 3
je 0x3004e24a
cmp byte [esp + 0x30], 0
jne 0x3004e211
test cl, cl
je 0x3004e211
mov byte [esp + 0x30], 1
cmp byte [esp + 0x31], 0
jne 0x3004e228
mov ecx, dword [esp + 0x24]
shr ecx, 8
test cl, cl
je 0x3004e228
mov byte [esp + 0x31], 1
cmp byte [esp + 0x32], 0
jne 0x3004e238
test dl, dl
je 0x3004e238
mov byte [esp + 0x32], 1
cmp byte [esp + 0x33], 0
jne case.0x3004df03.3
test al, al
je case.0x3004df03.3
mov byte [esp + 0x33], 1
jmp case.0x3004df03.3
cmp byte [esp + 0x30], 0
jne 0x3004e264
mov bl, byte [esp + 0x34]
cmp bl, cl
je 0x3004e264
setae cl
lea ecx, [ecx + ecx + 1]
mov byte [esp + 0x30], cl
cmp byte [esp + 0x31], 0
jne 0x3004e282
mov cl, byte [esp + 0x35]
mov bl, byte [esp + 0x25]
cmp cl, bl
je 0x3004e282
setae cl
lea ecx, [ecx + ecx + 1]
mov byte [esp + 0x31], cl
cmp byte [esp + 0x32], 0
jne 0x3004e29c
mov cl, byte [esp + 0x36]
cmp cl, dl
je 0x3004e29c
setae cl
lea ecx, [ecx + ecx + 1]
mov byte [esp + 0x32], cl
cmp byte [esp + 0x33], 0
jne case.0x3004df03.3
mov cl, byte [esp + 0x37]
cmp cl, al
je case.0x3004df03.3
setae al
lea eax, [eax + eax + 1]
mov byte [esp + 0x33], al
or eax, 0xffffffff
cmp dword [esp + 0x20], eax
je 0x3004e440
cmp dword [esp + 0x28], eax
je 0x3004e440
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x3c]
cmp cx, ax
jne 0x3004e4ca
test byte [esp + 0x48], 3
je 0x3004e3bf
mov al, byte [esp + 0x22]
mov bl, byte [esp + 0x2a]
cmp al, bl
mov byte [esp + 0x2f], al
je 0x3004e3bf
mov eax, dword [esp + 0x18]
add eax, 0xffffffff
je 0x3004e353
mov ebp, dword [esp + 0xac]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ax, word [esi + 2]
test ax, ax
jne 0x3004e323
cmp ebp, 0xfffffffe
je 0x3004e34b
lea ecx, [esp + 0x68]
push ecx
push eax
call fcn.3004cdcf
add esp, 8
cmp byte [esp + 0x69], 1
jne 0x3004e34b
mov dl, byte [esp + 0x6a]
add byte [esp + 0x2f], dl
sub edi, 1
add esi, 2
cmp edi, 1
jne 0x3004e315
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x1c]
add eax, 0xffffffff
je 0x3004e3a7
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0xb4]
mov esi, dword [esp + 0x10]
lea ecx, [ecx]
mov ax, word [esi + 2]
test ax, ax
jne 0x3004e37b
cmp ebp, 0xfffffffe
je 0x3004e39f
lea ecx, [esp + 0x68]
push ecx
push eax
call fcn.3004cdcf
add esp, 8
cmp byte [esp + 0x69], 1
jne 0x3004e39f
add bl, byte [esp + 0x6a]
sub edi, 1
add esi, 2
cmp edi, 1
jne 0x3004e36d
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], esi
mov al, byte [esp + 0x2f]
cmp al, bl
je 0x3004e3bf
sbb eax, eax
and al, 0xfe
add eax, 3
and dword [esp + 0x48], 0xfffffffe
mov dword [esp + 0x54], eax
test byte [esp + 0x48], 4
je 0x3004e3ea
mov al, byte [esp + 0x2b]
mov cl, byte [esp + 0x23]
and al, 0x3f
and cl, 0x3f
cmp cl, al
je 0x3004e3ea
sbb eax, eax
and al, 0xfe
add eax, 3
and dword [esp + 0x48], 0xfffffffb
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x74]
xor ecx, ecx
cmp eax, ecx
mov edx, 1
je 0x3004e40a
sub dword [esp + 0x80], edx
jne 0x3004e40a
mov dword [esp + 0x14], eax
mov dword [esp + 0x74], ecx
mov eax, dword [esp + 0x7c]
cmp eax, ecx
je 0x3004e420
sub dword [esp + 0x78], edx
jne 0x3004e420
mov dword [esp + 0x10], eax
mov dword [esp + 0x7c], ecx
sub dword [esp + 0x18], edx
sub dword [esp + 0x1c], edx
mov eax, 2
add dword [esp + 0x14], eax
add dword [esp + 0x10], eax
or eax, 0xffffffff
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
cmp dword [esp + 0x18], 0
jne 0x3004d50c
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x3004e505
cmp word [edi], 0
jne 0x3004e46f
cmp dword [esp + 0xb4], 0xfffffffe
je 0x3004e505
mov edx, dword [esp + 0xb4]
mov ebx, edi
mov eax, 1
mov esi, dword [esp + 0x54]
push esi
mov esi, dword [esp + 0x5c]
push esi
mov esi, dword [esp + 0x58]
push esi
mov esi, dword [esp + 0x3c]
push esi
mov esi, dword [esp + 0x94]
push esi
mov esi, dword [esp + 0x84]
push esi
mov esi, dword [esp + 0xd0]
push esi
mov esi, dword [esp + 0x78]
push esi
lea esi, [esp + 0x40]
push esi
push eax
push edx
push ebx
push ecx
call fcn.3004d1f7
add esp, 0x34
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret
sbb eax, eax
and al, 0xfe
pop edi
pop esi
pop ebp
pop ebx
add eax, 3
add esp, 0x8c
ret
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x3004e44f
cmp word [ebx], 0
jne 0x3004e4fb
cmp edx, 0xfffffffe
je 0x3004e44f
mov eax, 3
jmp 0x3004e47d
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x3004e57c
mov eax, dword [esp + 0x84]
test eax, eax
jne 0x3004e57c
cmp dword [esp + 0x30], eax
je 0x3004e552
cmp dword [esp + 0x5c], eax
jne 0x3004e534
mov al, byte [esp + 0x30]
test al, al
jne 0x3004e544
mov al, byte [esp + 0x31]
test al, al
jne 0x3004e544
mov al, byte [esp + 0x32]
test al, al
jne 0x3004e544
mov al, byte [esp + 0x33]
test al, al
je 0x3004e552
pop edi
pop esi
pop ebp
movzx eax, al
pop ebx
add esp, 0x8c
ret
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x3004e57c
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x3004e57c
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x8c
ret
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret