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

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x9c
push ebx
push ebp
push esi
push edi
mov edi, dword [eax + 0x6c]
cmp edi, 8
jne 0x46c0dd
mov ecx, dword [eax + 0xc]
shr ecx, 3
test cl, 1
je 0x46c0d6
mov ebp, dword [eax + 0x24]
jmp 0x46c0e1
mov ebp, 0x51df18
jmp 0x46c0e1
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0xb4]
mov esi, dword [ecx + 0x6c]
cmp esi, 8
jne 0x46c107
mov edx, dword [ecx + 0xc]
shr edx, 3
test dl, 1
je 0x46c100
mov eax, dword [ecx + 0x24]
jmp 0x46c10b
mov eax, 0x51df18
jmp 0x46c10b
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0xc8]
mov ecx, dword [ecx + 0x78]
shr esi, 3
mov edx, esi
mov dword [esp + 0x14], ecx
imul edx, ebx
sub ecx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xb0]
shr edi, 3
mov ecx, dword [ecx + 0x78]
mov dword [esp + 0x20], ecx
mov ecx, edi
imul ecx, ebx
mov ebx, ecx
mov ecx, dword [esp + 0x20]
sub ecx, ebx
mov ebx, dword [esp + 0xbc]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xb8]
shl ecx, 8
or ecx, ebx
mov ebx, dword [esp + 0xcc]
cmp ecx, 0x100f
ja 0x46cb8c
cmp ecx, 0x100f
je 0x46cb21
cmp ecx, 0xf01
ja 0x46c612
je 0x46c596
cmp ecx, 0x80f
ja 0x46c4a1
je 0x46c350
sub ecx, 0x101
je 0x46c2f0
sub ecx, 0x700
je 0x46c26a
sub ecx, 7
jne 0x46d0ce
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0xc4]
mov eax, dword [esp + 0xc0]
cmp ecx, edi
mov ebp, esi
jne 0x46c235
cmp edx, ecx
jne 0x46c235
mov ecx, edx
mov edi, eax
imul ecx, dword [esp + 0xcc]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ebx, dword [esp + 0xc8]
mov ecx, dword [esp + 0xb0]
mov esi, dword [esp + 0xb4]
mov eax, dword [esp + 0xb8]
cmp ecx, esi
mov dword [ecx + 8], eax
jne 0x46d1e7
mov ecx, 0x21
lea edi, [esp + 0x28]
lea ebp, [esp + 0x28]
rep movsd dword es:[edi], dword [esi]
jmp 0x46d1e9
test ebx, ebx
jbe 0x46c1fa
mov dword [esp + 0x18], ebx
mov ecx, edx
mov esi, ebp
mov ebx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
add eax, edi
add ebp, esi
dec ecx
mov dword [esp + 0x18], ecx
jne 0x46c23d
jmp 0x46c1fa
mov eax, dword [esp + 0xc4]
mov ebp, dword [esp + 0xc0]
test ebx, ebx
mov dword [esp + 0x14], eax
jbe 0x46c1fa
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0x20], ecx
test ebx, ebx
lea ecx, [ebx - 1]
jbe 0x46c2cc
mov eax, dword [esp + 0x14]
mov edx, 1
shl edx, cl
mov al, byte [eax]
and dl, al
neg dl
sbb dl, dl
and dl, 2
add dl, 0xfd
mov byte [ebp], dl
mov edx, dword [esp + 0x14]
add edx, esi
add ebp, edi
mov dword [esp + 0x14], edx
mov edx, ecx
dec ecx
test edx, edx
ja 0x46c29d
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
add ecx, eax
mov eax, dword [esp + 0x20]
add ebp, edx
dec eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], eax
jne 0x46c296
jmp 0x46c201
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0xc4]
mov eax, dword [esp + 0xc0]
cmp ecx, edi
mov ebp, esi
jne 0x46c314
cmp edx, ecx
je 0x46c1e0
test ebx, ebx
jbe 0x46c1fa
mov dword [esp + 0x18], ebx
mov ecx, edx
mov esi, ebp
mov ebx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
add eax, edi
add ebp, esi
dec ecx
mov dword [esp + 0x18], ecx
jne 0x46c320
jmp 0x46c1fa
mov eax, dword [0x51b2c8]
test eax, eax
je 0x46c421
mov eax, dword [esp + 0xc4]
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xcc]
test eax, eax
jbe 0x46c1fa
mov ecx, eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x10], ecx
test eax, eax
jbe 0x46c3f9
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x14]
mov byte [esp + 0x23], 0
mov ax, word [edx]
mov ecx, eax
mov edx, eax
shr ecx, 7
shl al, 3
and cl, 0xf8
mov byte [esp + 0x22], al
mov al, byte [0x50dbbc]
mov byte [esp + 0x20], cl
mov cl, byte [0x51b2c4]
push eax
shr edx, 2
and dl, 0xf8
push ecx
mov byte [esp + 0x29], dl
lea edx, [esp + 0x28]
push ebp
push edx
call fcn.00467290
mov ecx, dword [esp + 0x24]
mov byte [ebx], al
mov eax, dword [esp + 0x34]
add esp, 0x10
add ebx, edi
add ecx, esi
dec eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], eax
jne 0x46c393
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
add ebx, ecx
mov ecx, dword [esp + 0x1c]
add edx, ecx
mov ecx, dword [esp + 0x10]
dec ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
jne 0x46c38b
jmp 0x46c1fa
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xc4]
test ebx, ebx
jbe 0x46c1fa
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0xc8]
test ebx, ebx
jbe 0x46c485
mov dword [esp + 0x10], ebx
mov ax, word [edx]
add edx, esi
mov ebx, eax
mov ebp, eax
shr ebx, 9
shr ebp, 6
and ebx, 0x30
and ebp, 0xc
shr al, 3
or ebx, ebp
and eax, 3
or ebx, eax
mov al, byte [ebx + 0x50dc0c]
mov byte [ecx], al
mov eax, dword [esp + 0x10]
add ecx, edi
dec eax
mov dword [esp + 0x10], eax
jne 0x46c44a
mov ebx, dword [esp + 0xc8]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
add ecx, eax
mov eax, dword [esp + 0x24]
add edx, ebp
dec eax
mov dword [esp + 0x24], eax
jne 0x46c442
jmp 0x46c201
sub ecx, 0x810
je 0x46c54d
sub ecx, 8
je 0x46c504
sub ecx, 8
jne 0x46d0ce
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xc8]
push eax
mov eax, dword [esp + 0xd0]
push ebp
push ecx
mov ecx, dword [esp + 0xd0]
push edx
mov edx, dword [esp + 0xd0]
push eax
mov eax, dword [esp + 0xc8]
push ebx
push ecx
mov ecx, dword [esp + 0xcc]
push edx
push eax
push ecx
call fcn.0046e380
add esp, 0x28
jmp 0x46c201
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
push eax
mov eax, dword [esp + 0x1c]
push ebp
push edx
mov edx, dword [esp + 0xd0]
push eax
mov eax, dword [esp + 0xd0]
push ecx
mov ecx, dword [esp + 0xc8]
push ebx
push edx
mov edx, dword [esp + 0xcc]
push eax
push ecx
push edx
call fcn.0046d6a0
add esp, 0x28
jmp 0x46c201
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
push eax
mov eax, dword [esp + 0x20]
push ebp
push eax
mov eax, dword [esp + 0xd0]
push ecx
mov ecx, dword [esp + 0xd0]
push edx
mov edx, dword [esp + 0xc8]
push ebx
push eax
mov eax, dword [esp + 0xcc]
push ecx
push edx
push eax
call fcn.0046d3c0
add esp, 0x28
jmp 0x46c201
mov ebp, dword [esp + 0xc0]
mov eax, dword [esp + 0xc4]
test ebx, ebx
jbe 0x46c1fa
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0x10], ecx
test ebx, ebx
lea ecx, [ebx - 1]
jbe 0x46c5f6
mov bl, byte [eax]
mov edx, 1
shl edx, cl
and dl, bl
neg dl
sbb edx, edx
add eax, esi
and edx, 0x3e0
add edx, 0x7c1f
mov word [ebp], dx
add ebp, edi
mov edx, ecx
dec ecx
test edx, edx
ja 0x46c5c5
mov ebx, dword [esp + 0xc8]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
add ebp, ecx
mov ecx, dword [esp + 0x10]
add eax, edx
dec ecx
mov dword [esp + 0x10], ecx
jne 0x46c5be
jmp 0x46c201
cmp ecx, 0xf18
ja 0x46c8b8
je 0x46c86f
sub ecx, 0xf08
je 0x46c6e5
sub ecx, 7
je 0x46c685
dec ecx
jne 0x46d0ce
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
push eax
mov eax, dword [esp + 0x20]
push ebp
push eax
mov eax, dword [esp + 0xd0]
push ecx
mov ecx, dword [esp + 0xd0]
push edx
mov edx, dword [esp + 0xc8]
push ebx
push eax
mov eax, dword [esp + 0xcc]
push ecx
push edx
push eax
call fcn.0046d500
add esp, 0x28
jmp 0x46c201
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0xc4]
mov eax, dword [esp + 0xc0]
cmp ecx, edi
mov ebp, esi
jne 0x46c6a9
cmp edx, ecx
je 0x46c1e0
test ebx, ebx
jbe 0x46c1fa
mov dword [esp + 0x10], ebx
mov ecx, edx
mov esi, ebp
mov ebx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
add eax, edi
add ebp, esi
dec ecx
mov dword [esp + 0x10], ecx
jne 0x46c6b5
jmp 0x46c1fa
mov ebx, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
mov edx, ebx
imul edx, ecx
cmp edx, 0x200
jb 0x46c7b9
mov esi, 0x51e404
add eax, 2
mov dl, byte [eax - 2]
add esi, 2
and dl, 0xf8
add eax, 4
movzx di, dl
mov dl, byte [eax - 5]
and dl, 0xf8
movzx dx, dl
shl edi, 5
or edi, edx
mov dl, byte [eax - 4]
shr dl, 3
movzx dx, dl
shl edi, 2
or edi, edx
cmp esi, 0x51e604
mov word [esi - 2], di
jb 0x46c70c
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov esi, dword [esp + 0xc4]
mov edi, dword [eax + 0x6c]
mov ebp, dword [edx + 0x6c]
mov eax, dword [esp + 0xc0]
shr edi, 3
shr ebp, 3
test ecx, ecx
jbe 0x46c201
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x10], ecx
test ebx, ebx
jbe 0x46c79d
lea ecx, [ebx]
xor edx, edx
mov dl, byte [esi]
add esi, ebp
mov dx, word [edx*2 + 0x51e404]
mov word [eax], dx
add eax, edi
dec ecx
jne 0x46c787
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
add eax, ecx
mov ecx, dword [esp + 0x10]
add esi, edx
dec ecx
mov dword [esp + 0x10], ecx
jne 0x46c781
jmp 0x46c201
mov edx, dword [esp + 0xc4]
mov ebp, dword [esp + 0xc0]
test ecx, ecx
mov dword [esp + 0x14], edx
jbe 0x46c201
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x24], ecx
test ebx, ebx
jbe 0x46c847
mov dword [esp + 0x10], ebx
mov edx, dword [esp + 0x14]
mov cl, byte [edx]
mov byte [esp + 0x20], cl
mov edx, dword [esp + 0x20]
and edx, 0xff
mov bl, byte [eax + edx*4]
lea ecx, [eax + edx*4]
and bl, 0xf8
mov dl, byte [ecx + 1]
mov cl, byte [ecx + 2]
and dl, 0xf8
movzx bx, bl
movzx dx, dl
shl ebx, 5
shr cl, 3
or edx, ebx
movzx cx, cl
shl edx, 2
or edx, ecx
mov ecx, dword [esp + 0x10]
mov word [ebp], dx
mov edx, dword [esp + 0x14]
add ebp, edi
add edx, esi
dec ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
jne 0x46c7e6
mov ebx, dword [esp + 0xc8]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
add ebp, edx
mov edx, dword [esp + 0x1c]
add ecx, edx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x24]
dec ecx
mov dword [esp + 0x24], ecx
jne 0x46c7de
jmp 0x46c201
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
push eax
mov eax, dword [esp + 0x20]
push ebp
push eax
mov eax, dword [esp + 0xd0]
push ecx
mov ecx, dword [esp + 0xd0]
push edx
mov edx, dword [esp + 0xc8]
push ebx
push eax
mov eax, dword [esp + 0xcc]
push ecx
push edx
push eax
call fcn.0046d7d0
add esp, 0x28
jmp 0x46c201
sub ecx, 0xf20
je 0x46cad8
sub ecx, 0xe1
je 0x46ca5c
sub ecx, 7
jne 0x46d0ce
mov ebx, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
mov edx, ebx
imul edx, ecx
cmp edx, 0x200
jb 0x46c9ad
mov esi, 0x51e404
add eax, 2
mov dl, byte [eax - 2]
add esi, 2
and dl, 0xf8
add eax, 4
movzx di, dl
mov dl, byte [eax - 5]
and dl, 0xfc
movzx dx, dl
shl edi, 5
or edi, edx
mov dl, byte [eax - 4]
shr dl, 3
movzx dx, dl
shl edi, 3
or edi, edx
cmp esi, 0x51e604
mov word [esi - 2], di
jb 0x46c900
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov esi, dword [esp + 0xc4]
mov edi, dword [eax + 0x6c]
mov ebp, dword [edx + 0x6c]
mov eax, dword [esp + 0xc0]
shr edi, 3
shr ebp, 3
test ecx, ecx
jbe 0x46c201
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x10], ecx
test ebx, ebx
jbe 0x46c991
lea ecx, [ebx]
xor edx, edx
mov dl, byte [esi]
add esi, ebp
mov dx, word [edx*2 + 0x51e404]
mov word [eax], dx
add eax, edi
dec ecx
jne 0x46c97b
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
add eax, ecx
mov ecx, dword [esp + 0x10]
add esi, edx
dec ecx
mov dword [esp + 0x10], ecx
jne 0x46c975
jmp 0x46c201
mov edx, dword [esp + 0xc4]
mov ebp, dword [esp + 0xc0]
test ecx, ecx
mov dword [esp + 0x14], edx
jbe 0x46c201
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0xc8]
test ecx, ecx
jbe 0x46ca34
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x14]
mov cl, byte [edx]
mov byte [esp + 0x20], cl
mov edx, dword [esp + 0x20]
and edx, 0xff
mov bl, byte [eax + edx*4]
lea ecx, [eax + edx*4]
and bl, 0xf8
mov dl, byte [ecx + 1]
mov cl, byte [ecx + 2]
and dl, 0xfc
movzx bx, bl
movzx dx, dl
shl ebx, 5
shr cl, 3
or edx, ebx
movzx cx, cl
shl edx, 3
or edx, ecx
mov ecx, dword [esp + 0x10]
mov word [ebp], dx
mov edx, dword [esp + 0x14]
add ebp, edi
add edx, esi
dec ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
jne 0x46c9da
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
add ebp, ecx
mov ecx, dword [esp + 0x24]
add ebx, edx
dec ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], ecx
jne 0x46c9cb
jmp 0x46c1fa
mov ebp, dword [esp + 0xc0]
mov eax, dword [esp + 0xc4]
test ebx, ebx
jbe 0x46c1fa
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0x10], ecx
test ebx, ebx
lea ecx, [ebx - 1]
jbe 0x46cabc
mov bl, byte [eax]
mov edx, 1
shl edx, cl
and dl, bl
neg dl
sbb edx, edx
add eax, esi
and edx, 0x7e0
add edx, 0xf81f
mov word [ebp], dx
add ebp, edi
mov edx, ecx
dec ecx
test edx, edx
ja 0x46ca8b
mov ebx, dword [esp + 0xc8]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
add ebp, ecx
mov ecx, dword [esp + 0x10]
add eax, edx
dec ecx
mov dword [esp + 0x10], ecx
jne 0x46ca84
jmp 0x46c201
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
push eax
mov eax, dword [esp + 0x20]
push ebp
push eax
mov eax, dword [esp + 0xd0]
push ecx
mov ecx, dword [esp + 0xd0]
push edx
mov edx, dword [esp + 0xc8]
push ebx
push eax
mov eax, dword [esp + 0xcc]
push ecx
push edx
push eax
call fcn.0046e4c0
add esp, 0x28
jmp 0x46c201
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xc4]
test ebx, ebx
jbe 0x46c1fa
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0xc8]
test ebx, ebx
jbe 0x46cb70
lea eax, [ebx]
mov dword [esp + 0x10], eax
mov ax, word [edx]
add edx, esi
mov ebp, eax
and eax, 0x7fe0
and ebp, 0x7fff
add ebp, eax
mov eax, dword [esp + 0x10]
mov word [ecx], bp
add ecx, edi
dec eax
mov dword [esp + 0x10], eax
jne 0x46cb4c
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
add ecx, eax
mov eax, dword [esp + 0x24]
add edx, ebp
dec eax
mov dword [esp + 0x24], eax
jne 0x46cb42
jmp 0x46c201
cmp ecx, 0x1818
ja 0x46ced9
je 0x46ce90
cmp ecx, 0x1801
ja 0x46cd66
je 0x46ccd2
sub ecx, 0x1010
je 0x46cc5c
sub ecx, 8
je 0x46cc13
sub ecx, 8
jne 0x46d0ce
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xc8]
push eax
mov eax, dword [esp + 0xd0]
push ebp
push ecx
mov ecx, dword [esp + 0xd0]
push edx
mov edx, dword [esp + 0xd0]
push eax
mov eax, dword [esp + 0xc8]
push ebx
push ecx
mov ecx, dword [esp + 0xcc]
push edx
push eax
push ecx
call fcn.0046e580
add esp, 0x28
jmp 0x46c201
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
push eax
mov eax, dword [esp + 0x1c]
push ebp
push edx
mov edx, dword [esp + 0xd0]
push eax
mov eax, dword [esp + 0xd0]
push ecx
mov ecx, dword [esp + 0xc8]
push ebx
push edx
mov edx, dword [esp + 0xcc]
push eax
push ecx
push edx
call fcn.0046e250
add esp, 0x28
jmp 0x46c201
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0xc4]
mov eax, dword [esp + 0xc0]
cmp ecx, edi
mov ebp, esi
jne 0x46cc96
cmp edx, ecx
jne 0x46cc96
mov ecx, edx
mov edi, eax
imul ecx, dword [esp + 0xcc]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x46c1f5
test ebx, ebx
jbe 0x46c1fa
mov dword [esp + 0x10], ebx
mov ecx, edx
mov esi, ebp
mov ebx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
add eax, edi
add ebp, esi
dec ecx
mov dword [esp + 0x10], ecx
jne 0x46cca2
jmp 0x46c1fa
mov ecx, dword [esp + 0xc4]
mov eax, dword [esp + 0xc0]
test ebx, ebx
mov dword [esp + 0x14], ecx
jbe 0x46c1fa
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0x10], edx
test ebx, ebx
lea ebp, [ebx - 1]
jbe 0x46cd42
mov edx, 1
mov ecx, ebp
shl edx, cl
mov ecx, dword [esp + 0x14]
mov cl, byte [ecx]
test cl, dl
je 0x46cd24
mov cl, 0xff
mov byte [eax], cl
mov byte [eax + 1], cl
mov byte [eax + 2], cl
jmp 0x46cd2f
mov byte [eax], 0xff
mov byte [eax + 1], 0
mov byte [eax + 2], 0xff
mov edx, dword [esp + 0x14]
add eax, edi
add edx, esi
mov dword [esp + 0x14], edx
mov edx, ebp
dec ebp
test edx, edx
ja 0x46cd05
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
add edx, ecx
mov ecx, dword [esp + 0x10]
add eax, ebp
dec ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
jne 0x46ccfe
jmp 0x46c201
sub ecx, 0x1808
je 0x46ce10
sub ecx, 7
je 0x46cdc7
dec ecx
jne 0x46d0ce
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
push eax
mov eax, dword [esp + 0x1c]
push ebp
push edx
mov edx, dword [esp + 0xd0]
push eax
mov eax, dword [esp + 0xd0]
push ecx
mov ecx, dword [esp + 0xc8]
push ebx
push edx
mov edx, dword [esp + 0xcc]
push eax
push ecx
push edx
call fcn.0046d570
add esp, 0x28
jmp 0x46c201
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
push eax
mov eax, dword [esp + 0x20]
push ebp
push eax
mov eax, dword [esp + 0xd0]
push ecx
mov ecx, dword [esp + 0xd0]
push edx
mov edx, dword [esp + 0xc8]
push ebx
push eax
mov eax, dword [esp + 0xcc]
push ecx
push edx
push eax
call fcn.0046d290
add esp, 0x28
jmp 0x46c201
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xc4]
test ebx, ebx
jbe 0x46c1fa
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0xc8]
test ebx, ebx
jbe 0x46ce74
mov dword [esp + 0x10], ebx
mov bl, byte [edx]
add edx, esi
mov byte [esp + 0x14], bl
mov ebx, dword [esp + 0x14]
and ebx, 0xff
lea ebp, [eax + ebx*4]
mov bl, byte [eax + ebx*4 + 2]
mov byte [ecx], bl
mov bl, byte [ebp + 1]
mov byte [ecx + 1], bl
mov bl, byte [ebp]
mov byte [ecx + 2], bl
mov ebx, dword [esp + 0x10]
add ecx, edi
dec ebx
mov dword [esp + 0x10], ebx
jne 0x46ce39
mov ebx, dword [esp + 0xc8]
mov ebp, dword [esp + 0x18]
add ecx, ebp
mov ebp, dword [esp + 0x1c]
add edx, ebp
mov ebp, dword [esp + 0x24]
dec ebp
mov dword [esp + 0x24], ebp
jne 0x46ce31
jmp 0x46c201
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xc8]
push eax
mov eax, dword [esp + 0xd0]
push ebp
push ecx
mov ecx, dword [esp + 0xd0]
push edx
mov edx, dword [esp + 0xd0]
push eax
mov eax, dword [esp + 0xc8]
push ebx
push ecx
mov ecx, dword [esp + 0xcc]
push edx
push eax
push ecx
call fcn.0046e6a0
add esp, 0x28
jmp 0x46c201
cmp ecx, 0x200f
ja 0x46d0b4
je 0x46d06b
sub ecx, 0x1820
je 0x46d022
sub ecx, 0x7e1
je 0x46cfa7
sub ecx, 7
jne 0x46d0ce
mov edx, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc0]
test ebx, ebx
mov dword [esp + 0x14], edx
jbe 0x46c1fa
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0xc8]
test ebx, ebx
jbe 0x46cf83
mov dword [esp + 0x10], ebx
mov edx, dword [esp + 0x14]
xor ebx, ebx
mov dl, byte [edx]
mov byte [esp + 0x20], dl
mov edx, dword [esp + 0x20]
and edx, 0xff
mov bl, byte [eax + edx*4 + 2]
lea ebp, [eax + edx*4]
xor edx, edx
mov dl, byte [ebp + 1]
mov dh, byte [ebp]
shl edx, 8
or edx, ebx
mov ebx, dword [esp + 0x14]
mov dword [ecx], edx
mov edx, dword [esp + 0x10]
add ecx, edi
add ebx, esi
dec edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], edx
jne 0x46cf39
mov ebx, dword [esp + 0xc8]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
add ecx, edx
mov edx, dword [esp + 0x1c]
add ebp, edx
mov edx, dword [esp + 0x24]
dec edx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x24], edx
jne 0x46cf31
jmp 0x46c201
mov ebp, dword [esp + 0xc0]
mov eax, dword [esp + 0xc4]
test ebx, ebx
jbe 0x46c1fa
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0x10], ecx
test ebx, ebx
lea ecx, [ebx - 1]
jbe 0x46d006
mov bl, byte [eax]
mov edx, 1
shl edx, cl
and dl, bl
neg dl
sbb edx, edx
add eax, esi
and edx, 0xff00
add edx, 0xff00ff
mov dword [ebp], edx
add ebp, edi
mov edx, ecx
dec ecx
test edx, edx
ja 0x46cfd6
mov ebx, dword [esp + 0xc8]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
add ebp, ecx
mov ecx, dword [esp + 0x10]
add eax, edx
dec ecx
mov dword [esp + 0x10], ecx
jne 0x46cfcf
jmp 0x46c201
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
push eax
mov eax, dword [esp + 0x20]
push ebp
push eax
mov eax, dword [esp + 0xd0]
push ecx
mov ecx, dword [esp + 0xd0]
push edx
mov edx, dword [esp + 0xc8]
push ebx
push eax
mov eax, dword [esp + 0xcc]
push ecx
push edx
push eax
call fcn.0046e640
add esp, 0x28
jmp 0x46c201
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xc8]
push eax
mov eax, dword [esp + 0xd0]
push ebp
push ecx
mov ecx, dword [esp + 0xd0]
push edx
mov edx, dword [esp + 0xd0]
push eax
mov eax, dword [esp + 0xc8]
push ebx
push ecx
mov ecx, dword [esp + 0xcc]
push edx
push eax
push ecx
call fcn.0046d330
add esp, 0x28
jmp 0x46c201
sub ecx, 0x2010
je 0x46d19e
sub ecx, 8
je 0x46d155
sub ecx, 8
je 0x46d10c
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov dword [0x51d090], 0x513420
mov dword [0x51d094], 0x232
mov eax, dword [edx + 8]
mov edx, dword [ecx + 8]
push eax
push edx
push str.Conversion_format_from__d_to__d_not_implemented
push 0x22
call fcn.00449f60
add esp, 0x10
jmp 0x46c1fa
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
push eax
mov eax, dword [esp + 0x20]
push ebp
push eax
mov eax, dword [esp + 0xd0]
push ecx
mov ecx, dword [esp + 0xd0]
push edx
mov edx, dword [esp + 0xc8]
push ebx
push eax
mov eax, dword [esp + 0xcc]
push ecx
push edx
push eax
call fcn.0046e6a0
add esp, 0x28
jmp 0x46c201
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xc8]
push eax
mov eax, dword [esp + 0xd0]
push ebp
push ecx
mov ecx, dword [esp + 0xd0]
push edx
mov edx, dword [esp + 0xd0]
push eax
mov eax, dword [esp + 0xc8]
push ebx
push ecx
mov ecx, dword [esp + 0xcc]
push edx
push eax
push ecx
call fcn.0046e310
add esp, 0x28
jmp 0x46c201
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
push eax
mov eax, dword [esp + 0x1c]
push ebp
push edx
mov edx, dword [esp + 0xd0]
push eax
mov eax, dword [esp + 0xd0]
push ecx
mov ecx, dword [esp + 0xc8]
push ebx
push edx
mov edx, dword [esp + 0xcc]
push eax
push ecx
push edx
call fcn.0046d610
add esp, 0x28
jmp 0x46c201
mov ebp, esi
mov esi, dword [esp + 0xb0]
push ebp
push esi
mov dword [esi + 8], eax
call fcn.00447690
mov eax, dword [ebp + 0x38]
add ebp, 0x3c
mov dword [esi + 0x38], eax
lea ecx, [esi + 0x3c]
mov edx, dword [ebp]
mov dword [ecx], edx
mov eax, dword [ebp + 4]
mov dword [ecx + 4], eax
mov edx, dword [ebp + 8]
mov dword [ecx + 8], edx
mov eax, dword [esi + 0x4c]
mov edx, dword [esp + 0xd4]
mov ecx, dword [esi + 0x48]
lea edx, [eax + edx - 1]
push edx
lea edx, [ecx + ebx - 1]
push edx
push eax
push ecx
push esi
call fcn.0046d250
add esp, 0x1c
mov dword [0x51a938], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9c
ret