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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffff58
mov dword [esp], ecx
mov edi, edx
mov esi, eax
cmp byte [esi + 0x10], 0
je 0x612255
cmp dword [esi + 0xc], 0
jne case.default.0x612261
movzx eax, byte [edi]
cmp eax, 5
ja case.default.0x612261
jmp dword [eax*4 + 0x612268]
mov eax, dword [esp]
and eax, 3
cmp eax, 3
jne 0x612298
mov eax, dword [esp]
and eax, 0x7ffffffc
cmp dword [eax], 1
je 0x61229c
xor eax, eax
jmp 0x61229e
mov al, 1
mov byte [esp + 0x18], al
mov eax, dword [esp]
and eax, 3
cmp eax, 3
jne case.default.0x612261
mov eax, dword [esp]
and eax, 0x7ffffffc
cmp dword [eax], 1
jne case.default.0x612261
lea ecx, [esp + 0xc]
mov edx, dword [edi + 8]
mov eax, esp
call fcn.00610490
test al, al
je case.default.0x612261
cmp dword [edi + 4], 0
jne 0x6122ee
mov eax, esi
mov edx, dword [esp + 0xc]
call fcn.006116b8
jmp case.default.0x612261
mov edx, dword [edi + 4]
mov eax, esi
mov ecx, dword [esp + 0xc]
call fcn.00612234
jmp case.default.0x612261
mov eax, dword [esp]
and eax, 3
cmp eax, 3
jne case.default.0x612261
mov eax, dword [esp]
and eax, 0x7ffffffc
cmp dword [eax], 0
jne case.default.0x612261
mov eax, dword [esp]
mov edx, eax
and edx, 3
cmp edx, 3
je 0x612332
xor eax, eax
jmp 0x61235e
and eax, 0x7ffffffc
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
sub eax, 1
jb 0x61234a
je 0x612353
jmp 0x61235c
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 8]
jmp 0x61235e
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
jmp 0x61235e
xor eax, eax
cmp eax, dword [edi + 0x10]
jle case.default.0x612261
mov eax, dword [edi + 0x10]
mov dword [esp + 0x20], eax
mov eax, dword [esp]
and eax, 0x7ffffffc
mov dword [esp + 0x28], eax
mov eax, dword [esp]
and eax, 3
cmp eax, 3
jne 0x6123a1
mov eax, dword [esp + 0x28]
cmp dword [eax], 0
jne 0x6123a1
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
call fcn.0061067c
mov dword [esp + 0x24], eax
jmp 0x6123a7
xor eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], eax
cmp dword [edi + 4], 0
jne 0x6123c5
mov eax, esi
mov edx, dword [esp + 0xc]
call fcn.006116b8
jmp case.default.0x612261
mov edx, dword [edi + 4]
mov eax, esi
mov ecx, dword [esp + 0xc]
call fcn.00612234
jmp case.default.0x612261
mov eax, dword [edi + 4]
mov dword [esp + 0x14], eax
mov eax, dword [esp]
and eax, 3
sub eax, 1
jb 0x6123f4
je 0x612408
dec eax
je 0x61240f
dec eax
je 0x612416
jmp 0x61245a
cmp dword [esp], 0
jne 0x612401
mov byte [esp + 0x2c], 0
jmp 0x61245f
mov byte [esp + 0x2c], 1
jmp 0x61245f
mov byte [esp + 0x2c], 2
jmp 0x61245f
mov byte [esp + 0x2c], 4
jmp 0x61245f
mov eax, dword [esp]
and eax, 0x7ffffffc
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
sub eax, 1
jb 0x612437
je 0x61243e
dec eax
je 0x612445
dec eax
je 0x61244c
jmp 0x612453
mov byte [esp + 0x2c], 5
jmp 0x61245f
mov byte [esp + 0x2c], 6
jmp 0x61245f
mov byte [esp + 0x2c], 2
jmp 0x61245f
mov byte [esp + 0x2c], 3
jmp 0x61245f
mov byte [esp + 0x2c], 0
jmp 0x61245f
mov byte [esp + 0x2c], 0
movzx eax, byte [esp + 0x2c]
sub al, 5
je 0x612475
dec al
je 0x612547
jmp case.default.0x612261
mov eax, dword [esp]
mov edx, eax
and edx, 3
cmp edx, 3
je 0x61248a
xor eax, eax
mov dword [esp + 0x34], eax
jmp 0x6124c2
and eax, 0x7ffffffc
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
sub eax, 1
jb 0x6124a2
je 0x6124af
jmp 0x6124bc
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 8]
mov dword [esp + 0x34], eax
jmp 0x6124c2
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x34], eax
jmp 0x6124c2
xor eax, eax
mov dword [esp + 0x34], eax
mov ebp, dword [esp + 0x34]
dec ebp
test ebp, ebp
jl case.default.0x612261
inc ebp
xor ebx, ebx
mov eax, dword [esp + 0x14]
cmp byte [eax], 1
jne 0x6124f4
mov eax, dword [esp + 0x14]
cmp ebx, dword [eax + 0x10]
jne 0x6124f4
mov eax, esi
mov ecx, dword [esp]
mov edx, dword [esp + 0x14]
call fcn.00612234
jmp 0x61253e
mov dword [esp + 0x3c], ebx
mov eax, dword [esp]
and eax, 0x7ffffffc
mov dword [esp + 0x44], eax
mov eax, dword [esp]
and eax, 3
cmp eax, 3
jne 0x61252b
mov eax, dword [esp + 0x44]
cmp dword [eax], 0
jne 0x61252b
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
call fcn.0061067c
mov dword [esp + 0x40], eax
jmp 0x612531
xor eax, eax
mov dword [esp + 0x40], eax
mov eax, esi
mov ecx, dword [esp + 0x40]
mov edx, edi
call fcn.00612234
inc ebx
dec ebp
jne 0x6124d2
jmp case.default.0x612261
mov eax, dword [esp]
mov edx, eax
and edx, 3
cmp edx, 3
je 0x61255c
xor eax, eax
mov dword [esp + 0x48], eax
jmp 0x612594
and eax, 0x7ffffffc
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
sub eax, 1
jb 0x612574
je 0x612581
jmp 0x61258e
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 8]
mov dword [esp + 0x48], eax
jmp 0x612594
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x48], eax
jmp 0x612594
xor eax, eax
mov dword [esp + 0x48], eax
mov ebp, dword [esp + 0x48]
dec ebp
test ebp, ebp
jl case.default.0x612261
inc ebp
xor ebx, ebx
mov edx, ebx
mov eax, dword [esp]
and eax, 0x7ffffffc
mov ecx, dword [esp]
and ecx, 3
cmp ecx, 3
jne 0x6125c5
cmp dword [eax], 1
jne 0x6125c5
call fcn.00610b58
jmp 0x6125ca
mov eax, dword [0xa3fb64]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
cmp byte [eax], 0
jne 0x6125fb
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
call fcn.00409b50
jne 0x6125fb
mov eax, esi
mov ecx, dword [esp]
mov edx, dword [esp + 0x14]
call fcn.00612234
jmp 0x61260b
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, esi
mov edx, edi
call fcn.00612234
inc ebx
dec ebp
jne 0x6125a4
jmp case.default.0x612261
mov eax, dword [esp]
and eax, 3
sub eax, 1
jb 0x612629
je 0x61263d
dec eax
je 0x612644
dec eax
je 0x61264b
jmp 0x61268f
cmp dword [esp], 0
jne 0x612636
mov byte [esp + 0x50], 0
jmp 0x612694
mov byte [esp + 0x50], 1
jmp 0x612694
mov byte [esp + 0x50], 2
jmp 0x612694
mov byte [esp + 0x50], 4
jmp 0x612694
mov eax, dword [esp]
and eax, 0x7ffffffc
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
mov eax, dword [eax]
sub eax, 1
jb 0x61266c
je 0x612673
dec eax
je 0x61267a
dec eax
je 0x612681
jmp 0x612688
mov byte [esp + 0x50], 5
jmp 0x612694
mov byte [esp + 0x50], 6
jmp 0x612694
mov byte [esp + 0x50], 2
jmp 0x612694
mov byte [esp + 0x50], 3
jmp 0x612694
mov byte [esp + 0x50], 0
jmp 0x612694
mov byte [esp + 0x50], 0
movzx eax, byte [esp + 0x50]
sub al, 5
je 0x6126aa
dec al
je 0x612777
jmp case.default.0x612261
mov eax, dword [esp]
and eax, 3
cmp eax, 3
je 0x6126bd
xor eax, eax
mov dword [esp + 0x58], eax
jmp 0x6126f8
mov eax, dword [esp]
and eax, 0x7ffffffc
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x5c]
mov eax, dword [eax]
sub eax, 1
jb 0x6126d8
je 0x6126e5
jmp 0x6126f2
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 8]
mov dword [esp + 0x58], eax
jmp 0x6126f8
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x58], eax
jmp 0x6126f8
xor eax, eax
mov dword [esp + 0x58], eax
mov ebp, dword [esp + 0x58]
dec ebp
test ebp, ebp
jl case.default.0x612261
inc ebp
xor ebx, ebx
mov dword [esp + 0x60], ebx
mov eax, dword [esp]
and eax, 0x7ffffffc
mov dword [esp + 0x68], eax
mov eax, dword [esp]
and eax, 3
cmp eax, 3
jne 0x61273f
mov eax, dword [esp + 0x68]
cmp dword [eax], 0
jne 0x61273f
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x60]
call fcn.0061067c
mov dword [esp + 0x64], eax
jmp 0x612745
xor eax, eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc], eax
cmp dword [edi + 4], 0
jne 0x612760
mov eax, esi
mov edx, dword [esp + 0xc]
call fcn.006116b8
jmp 0x61276e
mov edx, dword [edi + 4]
mov eax, esi
mov ecx, dword [esp + 0xc]
call fcn.00612234
inc ebx
dec ebp
jne 0x612708
jmp case.default.0x612261
mov eax, dword [esp]
and eax, 3
cmp eax, 3
je 0x61278a
xor eax, eax
mov dword [esp + 0x6c], eax
jmp 0x6127c5
mov eax, dword [esp]
and eax, 0x7ffffffc
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x70]
mov eax, dword [eax]
sub eax, 1
jb 0x6127a5
je 0x6127b2
jmp 0x6127bf
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 8]
mov dword [esp + 0x6c], eax
jmp 0x6127c5
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x6c], eax
jmp 0x6127c5
xor eax, eax
mov dword [esp + 0x6c], eax
mov ebp, dword [esp + 0x6c]
dec ebp
test ebp, ebp
jl case.default.0x612261
inc ebp
xor ebx, ebx
mov edx, ebx
mov eax, dword [esp]
and eax, 0x7ffffffc
mov ecx, dword [esp]
and ecx, 3
cmp ecx, 3
jne 0x6127f6
cmp dword [eax], 1
jne 0x6127f6
call fcn.00610b58
jmp 0x6127fb
mov eax, dword [0xa3fb64]
mov dword [esp + 0x10], eax
cmp dword [edi + 4], 0
jne 0x612815
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 4]
mov eax, esi
call fcn.006116b8
jmp 0x612826
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov edx, dword [edi + 4]
mov eax, esi
call fcn.00612234
inc ebx
dec ebp
jne 0x6127d5
jmp case.default.0x612261
mov eax, dword [esp]
and eax, 3
cmp eax, 3
jne case.default.0x612261
mov eax, dword [esp]
and eax, 0x7ffffffc
cmp dword [eax], 0
jne case.default.0x612261
mov eax, dword [edi + 0xc]
call fcn.0040b87c
mov ebp, eax
dec ebp
test ebp, ebp
jl case.default.0x612261
inc ebp
xor ebx, ebx
mov eax, dword [edi + 0xc]
mov edx, dword [eax + ebx*4]
mov eax, dword [esp]
mov ecx, eax
and ecx, 3
cmp ecx, 3
je 0x61287c
xor eax, eax
jmp 0x6128a8
and eax, 0x7ffffffc
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x74]
mov eax, dword [eax]
sub eax, 1
jb 0x612894
je 0x61289d
jmp 0x6128a6
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 8]
jmp 0x6128a8
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 0xc]
jmp 0x6128a8
xor eax, eax
cmp eax, edx
jle 0x61291b
mov dword [esp + 0x78], edx
mov eax, dword [esp]
and eax, 0x7ffffffc
mov dword [esp + 0x80], eax
mov eax, dword [esp]
and eax, 3
cmp eax, 3
jne 0x6128ec
mov eax, dword [esp + 0x80]
cmp dword [eax], 0
jne 0x6128ec
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x78]
call fcn.0061067c
mov dword [esp + 0x7c], eax
jmp 0x6128f2
xor eax, eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], eax
cmp dword [edi + 4], 0
jne 0x61290d
mov eax, esi
mov edx, dword [esp + 0xc]
call fcn.006116b8
jmp 0x61291b
mov edx, dword [edi + 4]
mov eax, esi
mov ecx, dword [esp + 0xc]
call fcn.00612234
inc ebx
dec ebp
jne 0x612865
jmp case.default.0x612261
mov eax, dword [esp]
and eax, 3
cmp eax, 3
clc
add ecx, dword [edi]
test dword [ebx + 2], edx
add byte [eax], al