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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x38
push esi
mov esi, ecx
push edi
mov dword [esp + 0x38], esi
mov edi, dword [esi + 0xc0]
mov ecx, dword [esi + 0x7c]
mov dword [esp + 0x3c], edi
cmp edi, ecx
jl 0x403882
mov byte [esp + 0x10], 0
mov eax, 1
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], 0
movups xmm0, xmmword [esp + 0x10]
movups xmmword [esi + 0xb0], xmm0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0xc8], 0
mov eax, dword [esi + 0x78]
mov dl, byte [edi + eax]
mov byte [esp + 0x2f], dl
je 0x40390b
cmp dl, 0x5c
jne 0x4038b0
lea eax, [edi + 1]
cmp eax, ecx
jge 0x4038b0
mov eax, dword [esi + 0x78]
mov al, byte [edi + eax + 1]
cmp al, 0x45
je case.0x403966.69
mov ecx, dword [esi + 0xcc]
test ecx, ecx
je 0x4038d3
movsx eax, dl
push eax
call ecx
mov dword [esp + 0x1c], edi
add esp, 4
mov edi, dword [esi + 0xc0]
mov byte [esp + 0x10], al
jmp 0x4038db
mov byte [esp + 0x10], dl
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], 0
lea eax, [edi + 1]
mov dword [esp + 0x1c], 1
movups xmm0, xmmword [esp + 0x10]
mov dword [esi + 0xc0], eax
mov eax, 1
movups xmmword [esi + 0xb0], xmm0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
movsx eax, dl
cmp eax, 0x7d
ja case.0x40391e.0
movzx eax, byte [eax + 0x404038]
jmp dword [eax*4 + 0x404008]
lea eax, [edi + 1]
cmp eax, ecx
jl 0x403934
xor dh, dh
mov byte [esp + 0x2f], dh
jmp 0x40394b
mov eax, dword [esi + 0x78]
mov dh, byte [edi + eax + 1]
mov al, dh
mov byte [esp + 0x2f], dh
sub al, 0x30
cmp al, 9
jbe 0x403e6f
movsx eax, dh
mov dword [esp + 0x30], 2
cmp eax, 0x7a
ja case.0x403966.1
movzx eax, byte [eax + 0x404100]
jmp dword [eax*4 + 0x4040b8]
mov eax, dword [esp + 0x30]
mov byte [esp + 0x10], dh
mov dword [esp + 0x14], 1
mov dword [esp + 0x1c], 2
jmp 0x403fe5
cmp dword [esi + 0xc4], 0
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], 2
jle 0x4039b5
mov byte [esp + 0x10], 8
mov dword [esp + 0x14], 0
jmp 0x403fe9
mov byte [esp + 0x10], dh
mov dword [esp + 0x14], 1
jmp 0x403fe9
mov edx, dword [esi + 0x78]
lea eax, [edi + 2]
cmp eax, ecx
jge 0x4039db
mov al, byte [edx + eax]
cmp al, 0x7b
je case.0x403966.117
test edx, edx
mov eax, 0x4218d0
cmovne eax, edx
xor ecx, ecx
lea esi, [eax + edi]
xor edi, edi
xor edx, edx
nop
mov al, byte [esi + edi + 2]
cmp al, 0x30
jl 0x403a04
cmp al, 0x39
jg 0x403a04
shl ecx, 4
add ecx, 0xffffffd0
jmp 0x403a26
cmp al, 0x41
jl 0x403a14
cmp al, 0x46
jg 0x403a14
shl ecx, 4
add ecx, 0xffffffc9
jmp 0x403a26
mov dword [esp + 0x34], edx
cmp al, 0x61
jl 0x403a37
cmp al, 0x66
jg 0x403a3b
shl ecx, 4
add ecx, 0xffffffa9
inc edi
movsx eax, al
add ecx, eax
mov edx, edi
mov dword [esp + 0x34], edx
cmp edi, 2
jl 0x4039f0
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
lea eax, [edx + 2]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], eax
test edx, edx
jg 0x403a5a
mov cl, byte [esp + 0x2f]
mov byte [esp + 0x10], cl
mov ecx, dword [esi + 0xc0]
mov dword [esp + 0x18], ecx
jmp 0x403fe9
mov edx, dword [esi + 0x78]
lea eax, [edi + 2]
cmp eax, ecx
jge 0x403a82
mov al, byte [edx + eax]
cmp al, 0x7b
je 0x403b12
test edx, edx
mov eax, 0x4218d0
cmovne eax, edx
xor ecx, ecx
lea esi, [eax + edi]
xor edi, edi
xor edx, edx
mov al, byte [esi + edi + 2]
cmp al, 0x30
jl 0x403aa9
cmp al, 0x39
jg 0x403aa9
shl ecx, 4
add ecx, 0xffffffd0
jmp 0x403acb
cmp al, 0x41
jl 0x403ab9
cmp al, 0x46
jg 0x403ab9
shl ecx, 4
add ecx, 0xffffffc9
jmp 0x403acb
mov dword [esp + 0x34], edx
cmp al, 0x61
jl 0x403adc
cmp al, 0x66
jg 0x403ae0
shl ecx, 4
add ecx, 0xffffffa9
inc edi
movsx eax, al
add ecx, eax
mov edx, edi
mov dword [esp + 0x34], edx
cmp edi, 4
jl 0x403a95
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
lea eax, [edx + 2]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], eax
test edx, edx
jle 0x403a56
mov byte [esp + 0x10], cl
mov ecx, dword [esi + 0xc0]
mov dword [esp + 0x18], ecx
jmp 0x403fe9
test edx, edx
mov eax, 0x4218d0
cmovne eax, edx
xor ecx, ecx
mov dword [esp + 0x34], ecx
lea esi, [edi + eax]
xor edi, edi
xor edx, edx
nop dword [eax]
mov al, byte [esi + edi + 3]
cmp al, 0x30
jl 0x403b44
cmp al, 0x39
jg 0x403b44
movsx eax, al
add eax, 0xffffffd0
jmp 0x403b6a
cmp al, 0x41
jl 0x403b54
cmp al, 0x46
jg 0x403b54
movsx eax, al
add eax, 0xffffffc9
jmp 0x403b6a
mov dword [esp + 0x34], edx
cmp al, 0x61
jl 0x403b7b
mov dword [esp + 0x34], edx
cmp al, 0x66
jg 0x403b7b
movsx eax, al
add eax, 0xffffffa9
shl ecx, 4
inc edi
add ecx, eax
mov edx, edi
mov eax, edx
cmp edi, 8
jl 0x403b30
jmp 0x403b7f
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x3c]
add eax, 2
mov esi, dword [esp + 0x38]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
lea edx, [edi + eax]
mov ecx, dword [esi + 0x7c]
cmp edx, ecx
jge 0x403bb7
mov edi, dword [esi + 0x78]
cmp byte [edi + edx], 0x7d
mov eax, dword [esp + 0x30]
je 0x403bb3
inc eax
inc edx
mov dword [esp + 0x30], eax
cmp edx, ecx
jl 0x403b9f
mov edi, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x34]
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
jmp 0x403fe5
mov byte [esp + 0x10], 7
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], 2
jmp 0x403fe5
mov byte [esp + 0x10], 0xc
jmp 0x403bde
mov byte [esp + 0x10], 0xa
jmp 0x403bde
mov byte [esp + 0x10], 0xd
jmp 0x403bde
mov byte [esp + 0x10], 9
jmp 0x403bde
mov byte [esp + 0x10], 0xb
jmp 0x403bde
mov byte [esp + 0x10], 0x1b
jmp 0x403bde
cmp dword [esi + 0xc4], 0
jle case.0x403966.65
lea eax, [edi + 2]
mov dword [esi + 0xc0], eax
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0xcc], 0
jne case.0x403966.81
mov dword [esi + 0xcc], fcn.0040edcd
cmp dword [esi + 0xcc], 0
jne case.0x403966.81
mov dword [esi + 0xcc], fcn.0040edfd
lea eax, [edi + 2]
mov dword [esi + 0xc8], 1
mov dword [esi + 0xc0], eax
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [edi + 2]
mov dword [esi + 0xcc], 0
mov dword [esi + 0xc0], eax
xor eax, eax
mov dword [esi + 0xc8], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [edi + 1]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], edi
cmp eax, ecx
jl 0x403cca
mov eax, 1
mov byte [esp + 0x10], dl
mov dword [esp + 0x1c], eax
jmp 0x403fe9
mov eax, dword [esp + 0x30]
mov byte [esp + 0x10], dh
mov dword [esp + 0x1c], 2
jmp 0x403fe9
mov byte [esp + 0x10], dh
jmp 0x403bde
cmp dword [esi + 0xc4], 0
mov eax, 1
mov byte [esp + 0x10], dl
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], 1
jle 0x4039b9
mov dword [esp + 0x14], 0
jmp 0x403fe9
cmp dword [esi + 0xc4], 0
mov eax, 1
mov byte [esp + 0x10], dl
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], 1
jle 0x4039a8
mov dword [esp + 0x14], eax
jmp 0x403fe9
lea eax, [edi + 1]
cmp eax, ecx
jl 0x403d4d
xor dh, dh
jmp 0x403d54
mov eax, dword [esi + 0x78]
mov dh, byte [edi + eax + 1]
lea eax, [edi + 2]
mov dword [esp + 0x38], eax
cmp eax, ecx
jl 0x403d66
mov byte [esp + 0x2f], 0
jmp 0x403d7b
mov eax, dword [esi + 0x78]
mov ecx, dword [esp + 0x38]
mov al, byte [ecx + eax]
mov ecx, dword [esi + 0x7c]
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x38]
cmp dh, 0x3f
jne case.0x40391e.36
cmp byte [esp + 0x2f], 0x23
jne case.0x40391e.36
mov edi, eax
mov dword [esi + 0xc0], edi
cmp edi, ecx
jge 0x403dcb
mov edx, eax
nop dword [eax]
cmp edx, ecx
jge 0x403dae
mov eax, dword [esi + 0x78]
mov al, byte [edx + eax]
cmp al, 0x29
je 0x403dbd
lea edi, [edx + 1]
mov dword [esi + 0xc0], edi
mov edx, edi
cmp edi, ecx
jl 0x403da0
cmp edi, ecx
jge 0x403dcb
mov eax, dword [esi + 0x78]
mov al, byte [edi + eax]
cmp al, 0x29
je 0x403e2d
mov eax, 1
add eax, edi
mov dword [esi + 0xc0], eax
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test byte [esi + 4], 0x20
je case.0x40391e.0
inc edi
mov dword [esi + 0xc0], edi
cmp edi, ecx
jge 0x403e1b
mov eax, dword [esi + 0x78]
mov al, byte [edi + eax]
cmp al, 0xa
je 0x403e1b
cmp edi, ecx
jge 0x403e10
mov eax, dword [esi + 0x78]
mov al, byte [edi + eax]
cmp al, 0xd
je 0x403e1b
inc edi
mov dword [esi + 0xc0], edi
cmp edi, ecx
jl 0x403df8
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test byte [esi + 4], 0x20
je case.0x40391e.0
lea eax, [edi + 1]
mov dword [esi + 0xc0], eax
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0xc4]
test eax, eax
je 0x403e68
lea eax, [edi + 1]
cmp eax, ecx
jge case.0x40391e.0
mov eax, dword [esi + 0x78]
mov al, byte [edi + eax + 1]
cmp al, 0x3a
jne case.0x40391e.0
mov eax, dword [esi + 0xc4]
inc eax
mov dword [esi + 0xc4], eax
mov dword [esp + 0x14], 1
jmp 0x403fd8
mov eax, dword [esi + 0xc4]
mov byte [esp + 0x10], dl
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], 1
test eax, eax
jle 0x403eaf
dec eax
mov dword [esp + 0x14], 1
mov dword [esi + 0xc4], eax
mov eax, 1
jmp 0x403fe9
mov dword [esp + 0x14], 0
mov eax, 1
jmp 0x403fe9
lea eax, [esp + 0x10]
mov byte [esp + 0x10], 0x5b
push eax
lea ecx, [esi + 0xa0]
mov dword [esp + 0x18], 1
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
call fcn.004036a0
test eax, eax
mov dword [esp + 0x18], edi
mov al, byte [esp + 0x2f]
mov byte [esp + 0x10], al
mov eax, 1
mov dword [esp + 0x1c], 1
je 0x4039a8
mov dword [esp + 0x14], eax
jmp 0x403fe9
cmp dword [esi + 0xc4], 0
je 0x403fc6
lea ecx, [esp + 0x10]
mov byte [esp + 0x10], 0x5b
push ecx
lea ecx, [esi + 0xa0]
mov dword [esp + 0x18], 1
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
call fcn.004036a0
test eax, eax
jne 0x403fc2
mov dword [esp + 0x18], eax
lea ecx, [esi + 0x90]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x10]
push eax
mov byte [esp + 0x14], 0x5b
mov dword [esp + 0x18], 1
call fcn.004036a0
test eax, eax
je 0x403fb0
lea eax, [esp + 0x10]
mov byte [esp + 0x10], 0x3a
push eax
lea ecx, [esi + 0xa0]
mov dword [esp + 0x18], 1
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
call fcn.004036a0
test eax, eax
jne 0x403fc2
mov al, byte [esp + 0x2f]
mov byte [esp + 0x10], al
mov dword [esp + 0x14], 0
jmp 0x403fdc
mov dl, byte [esp + 0x2f]
mov dword [esp + 0x14], 1
jmp 0x403fd8
mov dword [esp + 0x14], 0
mov byte [esp + 0x10], dl
mov eax, 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edi
movups xmm0, xmmword [esp + 0x10]
add eax, edi
mov dword [esi + 0xc0], eax
mov eax, 1
pop edi
movups xmmword [esi + 0xb0], xmm0
pop esi
mov esp, ebp
pop ebp
ret