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

Disassembly:
sub esp, 0xfc
push ebx
mov ebx, 8
push esi
push edi
mov word [esp + 0x2e], bx
mov word [esp + 0x36], bx
mov word [esp + 0x44], bx
mov edi, 4
mov eax, 2
mov esi, 5
mov ecx, 1
mov edx, 3
mov ebx, 6
mov word [esp + 0xc], di
mov word [esp + 0xe], ax
mov word [esp + 0x10], si
mov word [esp + 0x12], 9
mov word [esp + 0x14], si
mov word [esp + 0x16], cx
mov word [esp + 0x18], ax
mov word [esp + 0x1a], dx
mov word [esp + 0x1c], ax
mov word [esp + 0x1e], si
mov word [esp + 0x20], dx
mov word [esp + 0x22], di
mov word [esp + 0x24], cx
mov word [esp + 0x26], ax
mov word [esp + 0x28], di
mov word [esp + 0x2a], dx
mov word [esp + 0x2c], si
mov word [esp + 0x30], ax
mov word [esp + 0x32], di
mov word [esp + 0x34], si
mov word [esp + 0x38], cx
mov word [esp + 0x3a], ax
mov word [esp + 0x3c], di
mov word [esp + 0x3e], dx
mov word [esp + 0x40], cx
mov word [esp + 0x42], cx
mov word [esp + 0x46], cx
mov word [esp + 0x48], ax
mov word [esp + 0x4a], di
mov word [esp + 0x4c], dx
mov word [esp + 0x4e], cx
mov word [esp + 0x50], cx
mov word [esp + 0x52], si
mov word [esp + 0x54], ax
mov word [esp + 0x56], ax
mov word [esp + 0x58], cx
mov word [esp + 0x5a], ax
mov word [esp + 0x5c], cx
mov word [esp + 0x5e], dx
mov word [esp + 0x60], si
mov word [esp + 0x62], ax
mov word [esp + 0x64], ax
mov word [esp + 0x66], cx
mov word [esp + 0x68], ax
mov word [esp + 0x6a], cx
mov word [esp + 0x6c], dx
mov word [esp + 0x6e], dx
mov word [esp + 0x70], cx
mov word [esp + 0x72], ax
mov word [esp + 0x74], dx
mov word [esp + 0x76], si
mov word [esp + 0x78], ax
mov word [esp + 0x7a], bx
mov word [esp + 0x7c], ax
mov word [esp + 0x7e], di
mov word [esp + 0x80], cx
mov word [esp + 0x82], dx
mov word [esp + 0x84], ax
mov word [esp + 0x86], cx
mov word [esp + 0x88], ax
mov word [esp + 0x8a], bx
mov word [esp + 0x8c], ax
mov word [esp + 0x8e], dx
mov word [esp + 0x90], dx
mov word [esp + 0x92], ax
mov word [esp + 0x94], cx
mov word [esp + 0x96], cx
mov word [esp + 0x98], dx
mov word [esp + 0xa6], dx
mov word [esp + 0xac], dx
mov word [esp + 0xb4], dx
mov word [esp + 0xba], dx
mov word [esp + 0xd4], dx
mov word [esp + 0xd6], dx
mov word [esp + 0xec], dx
mov word [esp + 0xf2], dx
mov word [esp + 0xfc], dx
mov word [esp + 0x102], dx
mov edx, dword [esp + 0x110]
mov word [esp + 0x9c], ax
mov word [esp + 0xa0], ax
mov word [esp + 0xaa], ax
mov word [esp + 0xb0], ax
mov word [esp + 0xb8], ax
mov word [esp + 0xbe], ax
mov word [esp + 0xc4], ax
mov word [esp + 0xc6], ax
mov word [esp + 0xca], ax
mov word [esp + 0xce], ax
mov word [esp + 0xd2], ax
mov word [esp + 0xd8], ax
mov word [esp + 0xe0], ax
mov word [esp + 0xe2], ax
mov word [esp + 0xe6], ax
mov word [esp + 0xea], ax
mov word [esp + 0xee], ax
mov word [esp + 0xf8], ax
mov word [esp + 0xfa], ax
mov word [esp + 0x100], ax
mov word [esp + 0x106], ax
xor eax, eax
mov word [esp + 0x9a], bx
test dx, dx
mov word [esp + 0x9e], cx
mov word [esp + 0xa2], di
mov word [esp + 0xa4], di
mov word [esp + 0xa8], cx
mov word [esp + 0xae], si
mov word [esp + 0xb2], bx
mov word [esp + 0xb6], cx
mov word [esp + 0xbc], si
mov word [esp + 0xc0], bx
mov word [esp + 0xc2], si
mov word [esp + 0xc8], cx
mov word [esp + 0xcc], cx
mov word [esp + 0xd0], bx
mov word [esp + 0xda], cx
mov word [esp + 0xdc], cx
mov word [esp + 0xde], si
mov word [esp + 0xe4], cx
mov word [esp + 0xe8], cx
mov word [esp + 0xf0], si
mov word [esp + 0xf4], di
mov word [esp + 0xf6], cx
mov word [esp + 0xfe], cx
mov word [esp + 0x104], si
jbe 0x404a1c
mov ecx, dword [esp + 0x10c]
and edx, 0xffff
mov esi, edx
cmp ax, 0x7e
jne 0x404a05
xor eax, eax
mov bl, byte [ecx]
mov edx, eax
and edx, 0xffff
mov dl, byte [esp + edx*2 + 0xc]
xor bl, dl
inc eax
mov byte [ecx], bl
inc ecx
dec esi
jne 0x4049fd
pop edi
pop esi
pop ebx
add esp, 0xfc
ret