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

Disassembly:
sub esp, 0x78
xor edx, edx
mov word [esp + 0x3c], dx
push ebx
mov word [esp + 0x42], dx
push esi
mov word [esp + 0x48], dx
push edi
mov word [esp + 0x4e], dx
push ebp
mov word [esp + 0x54], dx
mov eax, 1
mov word [esp + 0x56], dx
mov word [esp + 0x58], dx
mov word [esp + 0x5a], dx
mov ecx, 2
mov word [esp + 0x5c], ax
mov word [esp + 0x5e], ax
mov word [esp + 0x60], ax
mov word [esp + 0x62], ax
mov esi, 3
mov word [esp + 0x64], cx
mov word [esp + 0x66], cx
mov word [esp + 0x68], cx
mov word [esp + 0x6a], cx
mov edi, 4
mov word [esp + 0x6c], si
mov word [esp + 0x6e], si
mov word [esp + 0x70], si
mov word [esp + 0x72], si
mov ebx, 5
mov word [esp + 0x74], di
mov word [esp + 0x76], di
mov word [esp + 0x78], di
mov word [esp + 0x7a], di
mov word [esp + 0x7c], bx
mov word [esp + 0x7e], bx
mov word [esp + 0x80], bx
mov word [esp + 0x82], bx
mov word [esp + 0x84], dx
mov word [esp + 0x10], dx
mov word [esp + 0x12], dx
mov word [esp + 0x14], dx
mov word [esp + 0x16], dx
mov word [esp + 0x18], ax
mov word [esp + 0x1a], ax
mov word [esp + 0x1c], cx
mov word [esp + 0x1e], cx
mov word [esp + 0x20], si
mov word [esp + 0x22], si
mov eax, 6
mov word [esp + 0x24], di
mov word [esp + 0x26], di
mov word [esp + 0x28], bx
mov word [esp + 0x2a], bx
mov word [esp + 0x2c], ax
mov word [esp + 0x2e], ax
mov eax, 7
mov word [esp + 0x30], ax
mov word [esp + 0x32], ax
mov eax, 8
mov word [esp + 0x34], ax
mov word [esp + 0x36], ax
mov eax, 9
mov word [esp + 0x38], ax
mov word [esp + 0x3a], ax
mov eax, 0xa
mov word [esp + 0x3c], ax
mov word [esp + 0x3e], ax
mov eax, 0xb
mov word [esp + 0x40], ax
mov word [esp + 0x42], ax
mov eax, 0xc
mov word [esp + 0x44], ax
mov dword [0x40e564], edx
xor bx, bx
mov dword [0x40e548], edx
mov word [esp + 0x46], ax
mov dword [0x40e538], edx
mov eax, 0xd
mov word [esp + 0x48], ax
mov word [esp + 0x4a], ax
xor si, si
mov ebp, dword [0x40e5b0]
movsx eax, bx
mov edi, 1
lea ecx, [eax*2]
mov word [ebp + ecx], dx
mov cl, byte [esp + ecx + 0x4c]
shl edi, cl
test edi, edi
jle 0x40311d
inc si
mov ecx, dword [0x40e4f4]
movsx eax, dx
inc dx
mov byte [eax + ecx], bl
movzx eax, si
cmp eax, edi
jl 0x403106
inc bx
cmp bx, 0x1c
jl 0x4030df
xor si, si
mov eax, dword [0x40e4f4]
movsx ecx, dx
xor edx, edx
mov byte [ecx + eax - 1], bl
movsx eax, dx
mov ebx, dword [0x40e574]
mov edi, 1
lea ecx, [eax*2]
mov word [ebx + ecx], si
mov cl, byte [esp + ecx + 0x10]
shl edi, cl
xor bx, bx
test edi, edi
jle 0x403173
inc bx
mov ecx, dword [0x40e534]
movzx eax, si
inc si
mov byte [eax + ecx], dl
movzx eax, bx
cmp eax, edi
jl 0x40315c
inc dx
cmp dx, 0x10
jl 0x403136
shr si, 7
cmp dx, 0x1e
jge 0x4031d9
xor bx, bx
mov ecx, dword [0x40e574]
movsx eax, dx
mov edi, 1
lea ebp, [eax*2]
mov ax, si
shl ax, 7
mov word [ecx + ebp], ax
mov cx, word [esp + ebp + 0x10]
sub cl, 7
shl edi, cl
test edi, edi
jle 0x4031d1
inc bx
mov ecx, dword [0x40e534]
movzx eax, si
inc si
mov byte [eax + ecx + 0x100], dl
movzx eax, bx
cmp eax, edi
jl 0x4031b6
inc dx
cmp dx, 0x1e
jl 0x403185
xor ax, ax
movzx ecx, ax
inc ax
mov edx, dword [0x40e628]
mov word [edx + ecx*2], 0
cmp ax, 0xf
jbe 0x4031dc
xor cx, cx
mov esi, 8
movzx eax, cx
inc cx
mov edx, dword [0x40e5b4]
mov word [edx + eax*4 + 2], si
mov eax, dword [0x40e628]
inc word [eax + 0x10]
cmp cx, 0x8f
jbe 0x4031fb
cmp cx, 0xff
ja 0x403247
mov esi, 9
movzx edx, cx
inc cx
mov eax, dword [0x40e5b4]
mov word [eax + edx*4 + 2], si
mov edx, dword [0x40e628]
inc word [edx + 0x12]
cmp cx, 0xff
jbe 0x403227
cmp cx, 0x117
ja 0x403273
mov esi, 7
movzx eax, cx
inc cx
mov edx, dword [0x40e5b4]
mov word [edx + eax*4 + 2], si
mov eax, dword [0x40e628]
inc word [eax + 0xe]
cmp cx, 0x117
jbe 0x403253
cmp cx, 0x11f
ja 0x40329f
mov esi, 8
movzx edx, cx
inc cx
mov eax, dword [0x40e5b4]
mov word [eax + edx*4 + 2], si
mov edx, dword [0x40e628]
inc word [edx + 0x10]
cmp cx, 0x11f
jbe 0x40327f
xor di, di
push 0x11f
mov eax, dword [0x40e5b4]
mov esi, 5
push eax
call fcn.00404f40
add esp, 8
movzx eax, di
mov ecx, dword [0x40e59c]
push esi
mov word [ecx + eax*4 + 2], si
push edi
inc di
lea ebx, [eax*4]
call fcn.00404f10
add esp, 8
mov ecx, dword [0x40e59c]
mov word [ebx + ecx], ax
cmp di, 0x1e
jb 0x4032ba
xor ax, ax
movzx ecx, ax
inc ax
mov edx, dword [0x40e630]
mov word [edx + ecx*2], 0
cmp ax, 0x8000
jb 0x4032ee
xor ax, ax
movzx ecx, ax
inc ax
mov edx, dword [0x40e50c]
mov word [edx + ecx*2], 0
cmp ax, 0x8000
jb 0x403308
xor ax, ax
movzx ecx, ax
inc ax
mov edx, dword [0x40e644]
mov word [edx + ecx*2], 0
cmp ax, 0x23d
jb 0x403322
xor ax, ax
movzx edx, ax
inc ax
mov ecx, dword [0x40e5a0]
cmp ax, 0x23d
mov byte [edx + ecx], 0
jb 0x40333c
xor ecx, ecx
mov eax, dword [0x40e638]
mov edx, dword [0x40e5b4]
mov byte [0x40e63c], cl
mov dword [0x40e650], ecx
mov dword [0x40e520], eax
mov byte [0x40e57c], 1
mov word [0x40e532], cx
mov dword [0x40e524], edx
mov edx, 0xf
mov eax, dword [0x40e544]
mov word [0x40e530], dx
mov dword [0x40e4e0], eax
mov dword [0x40e528], 0x40d1f8
mov word [0x40e4ec], cx
mov ebx, dword [0x40e59c]
mov dword [0x40e4e8], 0x40d238
mov word [0x40e4f0], dx
mov dword [0x40e4e4], ebx
mov word [0x40e4f2], cx
mov edx, dword [0x40e540]
mov dword [0x40e580], edx
mov dword [0x40e584], ecx
mov dword [0x40e588], 0x40d278
mov word [0x40e52c], 0x101
mov word [0x40e52e], 0x11e
mov word [0x40e4ee], 0x1e
mov word [0x40e58c], cx
mov dword [0x40e564], ecx
mov word [0x40e592], cx
pop ebp
mov word [0x40e58e], 0x13
mov word [0x40e590], 7
pop edi
pop esi
pop ebx
add esp, 0x78
ret